sl@0: // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // This class contains all the entry class which is used to register the sl@0: // plugin. The additional data and functionality is to take account of plugins sl@0: // that are discovered by their dll entry, rsc entry, and spi entry sl@0: // sl@0: // sl@0: sl@0: #ifndef _EComEntryBase_H sl@0: #define _EComEntryBase_H sl@0: sl@0: #include sl@0: #include sl@0: #include "RegistryData.h" sl@0: sl@0: /* sl@0: CPluginBase is the base class for ECOM plugins discovered through different sl@0: mechanism e.g through Dll, Rsc file or from Spi file. sl@0: */ sl@0: class CPluginBase:public CBase sl@0: { sl@0: public: sl@0: CPluginBase(); sl@0: CResourceFile* RscFile() const{return iRscFile;} sl@0: virtual ~CPluginBase(); sl@0: virtual HBufC* RscFileExt() const{ return NULL;} sl@0: public: sl@0: /** sl@0: iDllSecondUid: Identifies type of the Interface Implementation Collection. (collection or collection3) sl@0: It will be used by CLoadManager to decide how to initialise a plugin. sl@0: */ sl@0: TUid iDllSecondUid; sl@0: /** sl@0: iDllThirdUid: Identifies a component uniquely. sl@0: */ sl@0: TUid iDllThirdUid; sl@0: sl@0: TTime iDllModifiedTime; sl@0: HBufC* iDllName; sl@0: protected: sl@0: CResourceFile* iRscFile; sl@0: }; sl@0: sl@0: // sl@0: sl@0: // sl@0: sl@0: class RResourceArchive; sl@0: /* sl@0: CSecurePlugin refers to the new secure ecom plugin that is discovered through sl@0: resource file as a result of platform security. These resource files are stored sl@0: in \Resource\Plugins sl@0: */ sl@0: class CSecurePlugin :public CPluginBase sl@0: { sl@0: public: sl@0: static CSecurePlugin* NewL(RFs& aFs,const TEntry& aEntry,const TDriveName& aDriveName, TBool aIsRO); sl@0: virtual ~CSecurePlugin(); sl@0: HBufC* RscFileExt() const{ return iRscFileExt;} sl@0: private: sl@0: CSecurePlugin(const TEntry& aEntry); sl@0: void ConstructL(RFs& aFs,const TEntry& aEntry,const TDriveName& aDriveName, TBool aIsRO); sl@0: HBufC* iRscFileExt; sl@0: }; sl@0: sl@0: // sl@0: /* sl@0: CSpiPlugin refers to ecom plugin that is discovered through reading the resource sl@0: archive(a spi file). The resource archive only applies to read only drive. sl@0: */ sl@0: class CSpiPlugin :public CPluginBase sl@0: { sl@0: public: sl@0: static CSpiPlugin* NewL(RResourceArchive& aRscArchive); sl@0: private: sl@0: CSpiPlugin(); sl@0: void ConstructL(RResourceArchive& aRscArchive); sl@0: sl@0: }; sl@0: sl@0: #endif //_EComEntryBase_H