epoc32/include/mw/cecombrowserplugininterface.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
parent 2 2fe1408b6811
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
     1 /*
     2 * Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
     3 * All rights reserved.
     4 * This component and the accompanying materials are made available
     5 * under the terms of the License "Eclipse Public License v1.0"
     6 * which accompanies this distribution, and is available
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
     8 *
     9 * Initial Contributors:
    10 * Nokia Corporation - initial contribution.
    11 *
    12 * Contributors:
    13 *
    14 * Description:  
    15 *
    16 */
    17 
    18 #ifndef CECOMBROWSERPLUGININTERFACE_H
    19 #define CECOMBROWSERPLUGININTERFACE_H
    20 
    21 // System includes
    22 #include <e32base.h>
    23 #include <ecom/ecom.h>
    24 
    25 // User includes
    26 #include <npupp.h>
    27 #include <browserplugininterface.h>
    28 
    29 typedef struct
    30     {
    31     NPNetscapeFuncs* iNetscapeFuncs;
    32     NPPluginFuncs* iPluginFuncs;
    33     }TFuncs;
    34 
    35 //
    36 // The ECOM interface definition for a Netscape plugin interface class.
    37 //
    38 class CEcomBrowserPluginInterface: public CBase
    39 	{
    40 	public: 
    41 
    42         inline static CEcomBrowserPluginInterface* CreatePluginL(
    43                                         TUid aImplementationUid,
    44                                         NPNetscapeFuncs* aNetscapeFuncs,
    45                                         NPPluginFuncs* aPluginFuncs);
    46 		
    47 		inline virtual ~CEcomBrowserPluginInterface();
    48 		
    49   public:
    50 
    51 	private:
    52   //	The ECom destructor key identifier
    53 	TUid iEcomDtorID;
    54 
    55 	// A refedrence count
    56 	TInt iCount;
    57 
    58 	};
    59 
    60 //
    61 //
    62 inline CEcomBrowserPluginInterface* CEcomBrowserPluginInterface::CreatePluginL(
    63         TUid aImplementationUid,
    64         NPNetscapeFuncs* aNetscapeFuncs,
    65         NPPluginFuncs* aPluginFuncs)
    66 	{
    67 
    68 	TFuncs initParams;
    69 	initParams.iNetscapeFuncs = aNetscapeFuncs;
    70 	initParams.iPluginFuncs = aPluginFuncs;
    71 
    72 	TAny* ptr = REComSession::CreateImplementationL(aImplementationUid, 
    73 									_FOFF(CEcomBrowserPluginInterface, iEcomDtorID),
    74                                     &initParams);
    75 
    76 	return REINTERPRET_CAST(CEcomBrowserPluginInterface*, ptr);
    77 	}
    78 
    79 inline CEcomBrowserPluginInterface::~CEcomBrowserPluginInterface()
    80 	{
    81 	REComSession::DestroyedImplementation(iEcomDtorID);
    82 	} 	
    83 
    84 
    85 #endif // CECOMBROWSERPLUGININTERFACE_H
    86 
    87 
    88 
    89