Symbian3/SDK/Source/GUID-08007041-CE18-5B1C-9AE6-042EBBFD1AB6.dita
author Dominic Pinkman <dominic.pinkman@nokia.com>
Tue, 20 Jul 2010 12:00:49 +0100
changeset 13 48780e181b38
parent 0 89d6a7a84779
permissions -rw-r--r--
Week 28 contribution of SDK documentation content. See release notes for details. Fixes bugs Bug 1897 and 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 id="GUID-08007041-CE18-5B1C-9AE6-042EBBFD1AB6" xml:lang="en"><title>Preventing
Plug-in Overriding </title><shortdesc>The plug-in framework supports two methods to prevent a RAM based
plug-in from overriding a ROM based plug-in. The first method is to use the
ROM-only resolver and the second method is to explicitly prevent a ROM-based
implementation from being overridden by a RAM-based implementation. </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
<context id="GUID-E05FFD46-A6C4-5BBF-8597-044CB0CA9F4B"><p>Using the ROM-only
resolver restricts the search of the framework plug-ins to the ROM only. </p> <p>Alternatively,
to prevent a RAM-based implementation from overriding a ROM-based implementation,
set the <codeph>rom_only</codeph> variable to 1 in the <xref href="GUID-9A9103E4-27B0-5CF3-855A-DCD44795A5C0.dita">resource
registration file</xref> for the implementation. </p> </context>
<steps-unordered id="GUID-67BE5671-24BB-5946-A711-6C6095B17D6D">
<step id="GUID-B321E521-7AB6-41C0-939B-803BB26A9417"><cmd>Using the ROM-only resolver  </cmd>
<stepxmp><p>Use <codeph>KRomOnlyResolverUid</codeph> as the <codeph>CResolver
UID</codeph> passed to those variants of <xref href="GUID-1344F049-81C4-3D17-AF46-8B5584680ADB.dita#GUID-1344F049-81C4-3D17-AF46-8B5584680ADB/GUID-AE9D4F24-8554-3151-AAF3-D63F400821C4"><apiname>REComSession::ListImplementationsL()</apiname></xref> and <xref href="GUID-1344F049-81C4-3D17-AF46-8B5584680ADB.dita#GUID-1344F049-81C4-3D17-AF46-8B5584680ADB/GUID-C7F147AC-6D77-3169-AAB4-B27262B4333B"><apiname>REComSession::CreateImplementationL()</apiname></xref> that take the <codeph>TUid aResolverUid</codeph> parameter.  </p><p>If an
installable upgrade to a ROM-based plug-in is correctly supplied by a vendor,
then the ROM-only resolver finds and uses the upgrade. Platform security controls
are used to ensure that the upgrade is secure. For details, see How to upgrade
ROM-based plug-ins securely.  </p></stepxmp>
</step>
<step id="GUID-0F6E0347-82B1-42E5-8AC8-983BDF86858C"><cmd>Preventing a ROM-based implementation from being overridden:  </cmd>
<stepxmp><p>If the ROM-based plug-ins must be prevented from being overridden
by a RAM-based plug-in, use the <xref href="GUID-9A9103E4-27B0-5CF3-855A-DCD44795A5C0.dita">version
2 resource file format</xref>. </p><p>In the <filepath>.rss</filepath> file,
the <codeph>rom_only</codeph> member of the <codeph>IMPLEMENTATION_INFO</codeph> structure
must be set to 1.  </p><p><codeph>rom_only</codeph> set to 1 indicates the
ROM-based implementation must be used. </p><p><codeph>rom_only</codeph> set
to 0 indicates the ROM-based implementations can be overridden.  </p><note> For
all implementations using the version 2 resource file format, the<codeph>rom_only</codeph> member
must be set explicitly. </note></stepxmp>
</step>
</steps-unordered>
</taskbody></task>