williamr@2: /* williamr@2: * Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@2: * under the terms of the License "Eclipse Public License v1.0" williamr@2: * which accompanies this distribution, and is available williamr@2: * at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: williamr@2: * williamr@2: */ williamr@2: williamr@2: #ifndef CECOMBROWSERPLUGININTERFACE_H williamr@2: #define CECOMBROWSERPLUGININTERFACE_H williamr@2: williamr@2: // System includes williamr@2: #include williamr@2: #include williamr@2: williamr@2: // User includes williamr@2: #include "npupp.h" williamr@2: #include "BrowserPluginInterface.h" williamr@2: williamr@2: typedef struct williamr@2: { williamr@2: NPNetscapeFuncs* iNetscapeFuncs; williamr@2: NPPluginFuncs* iPluginFuncs; williamr@2: }TFuncs; williamr@2: williamr@2: // williamr@2: // The ECOM interface definition for a Netscape plugin interface class. williamr@2: // williamr@2: class CEcomBrowserPluginInterface: public CBase williamr@2: { williamr@2: public: williamr@2: williamr@2: inline static CEcomBrowserPluginInterface* CreatePluginL( williamr@2: TUid aImplementationUid, williamr@2: NPNetscapeFuncs* aNetscapeFuncs, williamr@2: NPPluginFuncs* aPluginFuncs); williamr@2: williamr@2: inline virtual ~CEcomBrowserPluginInterface(); williamr@2: williamr@2: public: williamr@2: williamr@2: private: williamr@2: // The ECom destructor key identifier williamr@2: TUid iEcomDtorID; williamr@2: williamr@2: // A refedrence count williamr@2: TInt iCount; williamr@2: williamr@2: }; williamr@2: williamr@2: // williamr@2: // williamr@2: inline CEcomBrowserPluginInterface* CEcomBrowserPluginInterface::CreatePluginL( williamr@2: TUid aImplementationUid, williamr@2: NPNetscapeFuncs* aNetscapeFuncs, williamr@2: NPPluginFuncs* aPluginFuncs) williamr@2: { williamr@2: williamr@2: TFuncs initParams; williamr@2: initParams.iNetscapeFuncs = aNetscapeFuncs; williamr@2: initParams.iPluginFuncs = aPluginFuncs; williamr@2: williamr@2: TAny* ptr = REComSession::CreateImplementationL(aImplementationUid, williamr@2: _FOFF(CEcomBrowserPluginInterface, iEcomDtorID), williamr@2: &initParams); williamr@2: williamr@2: return REINTERPRET_CAST(CEcomBrowserPluginInterface*, ptr); williamr@2: } williamr@2: williamr@2: inline CEcomBrowserPluginInterface::~CEcomBrowserPluginInterface() williamr@2: { williamr@2: REComSession::DestroyedImplementation(iEcomDtorID); williamr@2: } williamr@2: williamr@2: williamr@2: #endif // CECOMBROWSERPLUGININTERFACE_H williamr@2: williamr@2: williamr@2: williamr@2: