commonuisupport/uikon/test/tlibs/tloaddll/TLOADDLLV2.CPP
changeset 0 2f259fa3e83a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/commonuisupport/uikon/test/tlibs/tloaddll/TLOADDLLV2.CPP	Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,163 @@
+// Copyright (c) 2005-2009 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 "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// The following test case is used to test the loading of ECom plugin dll and print
+// a message on the screen if successfully loaded.
+// 
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code
+*/
+
+#include <eikenv.h>
+#include <ecom/implementationproxy.h>
+#include "contentmgr.h"
+#include "TLOADDLL.H"
+#include "TLoadDllV2.hrh"
+
+/**
+   Constructor
+ */
+CTestEikonEComDllLoading::CTestEikonEComDllLoading()
+	{
+	}
+
+/**
+   Destructor
+ */
+CTestEikonEComDllLoading::~CTestEikonEComDllLoading()
+	{
+	delete iContentManager;
+	}
+
+/**
+   First phase constructor
+ */
+EXPORT_C const CTestEikonEComDllLoading* CTestEikonEComDllLoading::NewL()
+	{
+	CTestEikonEComDllLoading* testDll=new(ELeave) CTestEikonEComDllLoading();
+
+	return testDll;
+	}
+
+/**
+   Auxiliary function for all Test Cases
+  
+   The method is an override from CEikLibrary2 and 
+   Sets up the variables needed by the eikenv.
+   
+ */
+void CTestEikonEComDllLoading::InitializeL()
+	{
+	CEikonEnv* env=CEikonEnv::Static();
+	iContentManager=CEikTestContentManager::NewL(env->FsSession());
+	env->AddPictureFactoryL(*iContentManager);
+	}
+
+/**
+   Auxiliary function for all Test Cases
+  
+   The method is an override from CEikLibrary2 and 
+   Returns the resource file used by this DLL.
+   
+ */
+CArrayFix<TFileName>* CTestEikonEComDllLoading::ResourceFileArrayL() const
+	{
+	CArrayFix<TFileName>* resFileArray = new(ELeave) CArrayFixFlat<TFileName>(1);
+	CleanupStack::PushL(resFileArray);
+	
+	resFileArray->AppendL(ResourceFile());
+	
+	CleanupStack::Pop(); // resFileArray
+	return resFileArray;
+	}
+
+/**
+   Auxiliary function for all Test Cases
+  
+   The method is an override from CEikLibrary2 and 
+   Returns DLL's control factory function.
+   
+ */
+CArrayFix<TCreateByTypeFunction>* CTestEikonEComDllLoading::ControlFactoryArrayL() const
+	{
+	CArrayFix<TCreateByTypeFunction>* ctrlFactoryArray = new(ELeave) CArrayFixFlat<TCreateByTypeFunction>(1);
+	CleanupStack::PushL(ctrlFactoryArray);
+
+	ctrlFactoryArray->AppendL(STATIC_CAST(TCreateByTypeFunction, CreateByTypeL));
+
+	CleanupStack::Pop(); // ctrlFactoryArray
+	return ctrlFactoryArray;
+	}
+
+/**
+   Auxiliary function for all Test Cases
+  
+   Returns resource file name of the DLL.
+   
+ */
+TFileName CTestEikonEComDllLoading::ResourceFile() const
+	{
+	_LIT(KResFileName,"z:\\system\\test\\taddlib\\external.rsc");
+	TFileName resourceFile=KResFileName();
+	return resourceFile;
+	}
+
+/**
+   Auxiliary function for CTestAutoContainer
+  
+   Creates a control specified by aControlType.
+   
+ */
+SEikControlInfo CTestEikonEComDllLoading::CreateByTypeL(TInt aControlType)
+	{	
+	SEikControlInfo controlInfo;
+	controlInfo.iControl = NULL;
+	controlInfo.iTrailerTextId = 0;
+	controlInfo.iFlags = 0;
+
+    switch (aControlType)
+        {
+    case CTestEikDllLoadedLabel::ECtTestEikEComDllLoadedLabel:
+		controlInfo.iControl = new(ELeave) CTestEikDllLoadedLabel;
+		break;
+		}
+	return controlInfo;
+	}
+
+//Adding ECOM SUPPORT
+
+const TImplementationProxy ImplementationTable[] =
+	{
+	 IMPLEMENTATION_PROXY_ENTRY(KTLoadDllV2ImplUid,CTestEikonEComDllLoading::NewL)
+	};
+
+/**
+   Returns a pointer to an array of TImplementationProxy objects containing a UID 
+   and a funcion pointer.
+  
+   @param aTableCount number of items in the array.
+   
+   @return pointer to an array of TImplementationProxy objects.
+ */
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
+	{
+	aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy) ;
+	return ImplementationTable;
+	}
+
+//
+// END OF FILE
+//