Symbian3/PDK/Source/GUID-2955A35E-1215-5C4A-9C24-0106FB75E295.dita
author Dominic Pinkman <dominic.pinkman@nokia.com>
Fri, 16 Jul 2010 17:23:46 +0100
changeset 12 80ef3a206772
parent 9 59758314f811
permissions -rw-r--r--
Week 28 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 1897, Bug 344, Bug 2681, Bug 463, Bug 1522.

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License 
"Eclipse Public License v1.0" which accompanies 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-2955A35E-1215-5C4A-9C24-0106FB75E295"><title>Provide ECOM registry information for a PSY</title><shortdesc>This section describes how to package the PSY as an ECOM plug-in that can be loaded by the LBS subsystem. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody><context id="GUID-6D4EEEE5-BB39-53BD-8B41-62B6FEE7ADAF"><p>A PSY must provide the ECOM registry with information about itself. Registry information is used by the Location Framework to recognise a PSY implementation. This section describes how to create ECOM registry information for a PSY. </p> </context> <steps id="GUID-193095EC-B7F6-520B-8DD7-D200E7EF174F"><step id="GUID-3A17C6EA-BB68-5B06-A53B-D99C958618BA"><cmd/><info>Obtain two UIDs for the PSY from Symbian. </info> <substeps id="GUID-A9F4EAE2-F8FE-5645-A20B-AB7ABF7E057D"><substep id="GUID-C576657B-B83D-50E4-B23B-BC2555FB37F8"><cmd/><info>A PSY DLL UID is required for the DLL that packages the PSY. </info> </substep> <substep id="GUID-AC18D7DB-F9F1-5C3F-8E3A-7678BB6D8C89"><cmd/><info>A PSY implementation UID is required to identify the implementation of the PSY interface that is loaded by ECOM. </info> </substep> </substeps> </step> <step id="GUID-553B5668-AAA4-5E8D-AB3D-02CC37A11786"><cmd/><info>Create an ECOM resource file for the PSY. </info> <info>ECOM Registry information is stored in a resource file. The resource file must define a <codeph>REGISTRY_INFO</codeph> resource at the start of the file. The resource file must not contain anything else. </info> <info>The <codeph>REGISTRY_INFO</codeph> structure and some useful constant declarations are defined in <codeph>registryinfo.rh</codeph>. </info> <info>The registry information consists of the following: </info> <substeps id="GUID-1F3A7A38-70C0-5714-8147-10DA24647830"><substep id="GUID-AF7993CE-F547-5079-8E11-DDC7B1423150"><cmd/><info>PSY DLL UID. </info> </substep> <substep id="GUID-7E26BF57-9DE3-51F1-B93A-00D1DB69A1A5"><cmd/><info>PSY implementation UID. </info> </substep> <substep id="GUID-211E347E-6D89-5420-8DCE-7ABA5E14AC1A"><cmd/><info>PSY version. </info> </substep> <substep id="GUID-DB2589C4-14E9-5EE4-BD80-52723FADDE51"><cmd/><info>A display name for the PSY (this can be shown in a UI). </info> <info>The display name in the ECOM registration file cannot be localised. In order to provide a PSY name that can be localised, the PSY needs to create a separate localised resource file. The path to this localised resource file must be specified through the <xref href="GUID-DA2DC704-CE65-54FB-9049-4E1C73092EDF-GENID-1-12-1-19-1-1-10-1-5-1-5-1-8-1.dita">Positioning Plug-in Information API</xref>. </info> <info>If the localised resource file is not specified or cannot be found, the display name in the ECOM registry resource file is used. </info> </substep> </substeps> <info>An example resource file is shown below. Note that the <codeph>inteface_uid</codeph> must be <codeph>0x101F7A7C</codeph> as specified in this file. The <codeph>dll_uid</codeph> and <codeph>implementation_uid</codeph> will be different in your implementation. </info> <stepxmp><codeblock id="GUID-5091D78F-FF85-574A-BFA0-22EE74DD77B5" xml:space="preserve">#include &lt;registryinfo.rh&gt; 
#include "ExamplePsy.hrh" // Defines KPosExamplePSYImplUid

RESOURCE REGISTRY_INFO r_examplepsy_reginfo
{
// This dll_uid needs to be allocated by the licensee from Symbian. 
dll_uid = 0x10001234; 
interfaces =
    {
    INTERFACE_INFO
        {
        // This interface_uid has to be 0x101F7A7C an is specified by Location framework.
        interface_uid = 0x101F7A7C;
        implementations =
            {
            IMPLEMENTATION_INFO
                {
                // The licensee needs to allocate this UID from Symbian
                implementation_uid = KPosExamplePSYImplUid;
                version_no = 2;
                display_name = "Example PSY";
                }
            };
        }
    };
}
</codeblock> </stepxmp> </step> </steps> <postreq id="GUID-3413BBB4-9CDC-5FF7-AC92-CF069F88C9CE"><p> <xref href="GUID-DA2DC704-CE65-54FB-9049-4E1C73092EDF-GENID-1-12-1-19-1-1-10-1-5-1-5-1-8-1.dita">Define PSY attributes using the Positioning Plug-in Information API</xref>. </p> <p>Test the PSY using the <xref href="GUID-20D774EC-4993-55F5-979C-AF80A264F777.dita">PSY tester application</xref>. </p> </postreq> </taskbody><related-links><link href="GUID-86AD79A5-E18D-56C6-997A-5E2B24FEE80D.dita"><linktext>Positioning
                Plug-in API Tutorial</linktext> </link> </related-links></task>