examples/SysLibs/ECom/InterfaceDefinition/Interface.h

00001 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
00002 // All rights reserved.
00003 // This component and the accompanying materials are made available
00004 // under the terms of "Eclipse Public License v1.0"
00005 // which accompanies this distribution, and is available
00006 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
00007 //
00008 // Initial Contributors:
00009 // Nokia Corporation - initial contribution.
00010 //
00011 // Contributors:
00012 //
00013 // Description:
00014 //
00015 
00016 #ifndef _CEXAMPLEINTERFACE__
00017 #define _CEXAMPLEINTERFACE__
00018 
00019 #include <e32base.h>
00020 #include <ecom.h>
00021 #include <badesca.h>
00022 
00023 // UID of this interface
00024 const TUid KCExampleInterfaceUid = {0x10009DC0};
00025 
00036 class CExampleInterface : public CBase
00037         {
00038 public:
00039         // The interface for passing initialisation parameters
00040         // to the derived class constructor.
00041         struct TExampleInterfaceInitParams
00042                 {
00043                 TInt integer;
00044                 const TDesC* descriptor;
00045                 };
00046 
00047         // Instantiates an object of this type 
00048         static CExampleInterface* NewL();
00049 
00050         // Instantiates an object of this type 
00051         // using the aMatchString as the resolver parameters.
00052         static CExampleInterface* NewL(const TDesC8& aMatchString);
00053 
00054         // Instantiates an object of this type
00055         // using the aMatchString as the resolver parameters
00056         // and passing the aParams parameters 
00057         static CExampleInterface* NewL(const TDesC8& aMatchString, TExampleInterfaceInitParams& aParams);
00058 
00059         // Destructor.
00060         virtual ~CExampleInterface();
00061 
00062         // Request a list of all available implementations which 
00063         // satisfy this given interface.
00064         static void ListAllImplementationsL(RImplInfoPtrArray& aImplInfoArray);
00065 
00066         // Pure interface method
00067         // Representative of a method provided on the interface by 
00068         // the interface definer.
00069         virtual void DoMethodL(TDes& aString) = 0;
00070 
00071 protected:
00072         //Default c'tor
00073         inline CExampleInterface();
00074 
00075 private:
00076         // Unique instance identifier key
00077         TUid iDtor_ID_Key;
00078         };
00079 
00080 #include "interface.inl"
00081 
00082 #endif 
00083 

Generated by  doxygen 1.6.2