browserplugin/cpixnpplugin/inc/ccpixnppluginecom.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 02 Sep 2010 20:27:46 +0300
changeset 20 68cdadcf169e
parent 0 ccd0fd43f247
permissions -rw-r--r--
Revision: 201033 Kit: 201035

/*
* Copyright (c) 2010 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: 
*
*/

#ifndef CCPIXNPPLUGINECOM_H
#define CCPIXNPPLUGINECOM_H

//  INCLUDES
#include <CEcomBrowserPluginInterface.h>

#ifdef __S60_50__
#include <npscript.h>
#else
#include <Javascriptcore/npruntime.h>
#endif

// CLASS DECLARATION

/******************************************
This class is specific to ECom Style Plugin.  This is used for passing
plugin specific initialization information to and from browser.
*******************************************/
IMPORT_C NPError InitializeFuncs( NPPluginFuncs* aPpf );

// CONSTANTS
const TInt KCPixNPPluginImplementationValue = 0x2001f6f9; // Matches implementation_uid in rss file

/**
 *  CPixNPPluginEcom
 *  Used for passing plugin specific initialization information to and from browser.
 *  @since S60 v3.2
 */
class CCPixNPPluginEcom : public CEcomBrowserPluginInterface
    {
    public: // Functions from base classes

        /**
        * Two-phased constructor.
        */
        static CCPixNPPluginEcom* NewL( TAny* aInitParam );

        /**
        * Destructor
        */
        virtual ~CCPixNPPluginEcom();

        /**
        * Passed from the browser to the plugin and delcares what
        * functions the browser makes available
        */
        NPNetscapeFuncs* Funcs() const { return iNpf; }

    private:

        // Default constructor
        CCPixNPPluginEcom( NPNetscapeFuncs* aNpf );

        // By default Symbian 2nd phase constructor is private.
        void ConstructL( NPPluginFuncs* aPluginFuncs );

        // Netscape Function Pointer
        NPNetscapeFuncs* iNpf;
    };

/**
********************************************************************************
    Plugin API methods. Source located in CSystemInfoApi.cpp
*********************************************************************************
*/

/**
 * Create a plugin.
 */

NPError CPixPluginNewp( NPMIMEType pluginType, NPP instance, uint16 mode,
                        CDesCArray* argn, CDesCArray* argv, NPSavedData* saved );

/**
 * Checks, whether it is ok to load the plugin. The page, which attempts
 * to load plugin should be originated in a secure domain, like *.nokia.com or
 * the local filesystem. 
 */
TBool CPixPluginAcceptLoadAttempt( NPP instance );
/**
 * Wrapper the errors
 */
void CPixPluginConstructL( NPP aInstance, CDesCArray* argn, CDesCArray* argv );

/**
 * Destroy a plugin.
 */
NPError CPixPluginDestroy( NPP aInstance, NPSavedData** save );

/**
 * Generic hook to retrieve values/attributes from the plugin.
 */
NPError CPixPluginGetvalue( NPP aInstance, NPPVariable variable, void *ret_value );


#endif /*CCPIXNPPLUGINECOM_H*/

// End of File