dependencies/liwservicehandler.h
author Christian Morlok <symbian.org@christianmorlok.de>
Sat, 27 Mar 2010 01:00:02 +0100
branchv5backport
changeset 36 3310c3399a08
parent 20 d2ab7c3d0c48
permissions -rw-r--r--
add new mifconv
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
20
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
     1
/*
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
     2
* Copyright (c) 2003-2005 Nokia Corporation and/or its subsidiary(-ies).
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
     3
* All rights reserved.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
     8
*
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
     9
* Initial Contributors:
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    11
*
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    12
* Contributors:
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    13
*
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    14
* Description:       Declares an API for the consumer applications to access the 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    15
*                Language Interworking Framework. 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    16
*
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    17
*/
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    18
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    19
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    20
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    21
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    22
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    23
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    24
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    25
#ifndef LIW_SERVICE_HANDLER_H
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    26
#define LIW_SERVICE_HANDLER_H
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    27
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    28
// INCLUDES
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    29
#include <barsread.h> 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    30
#include <liwcommon.h>
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    31
#include <e32capability.h>
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    32
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    33
// CONSTANTS
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    34
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    35
// MACROS
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    36
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    37
// FUNCTION PROTOTYPES
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    38
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    39
// FORWARD DECLARATIONS
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    40
class CLiwServiceHandlerImpl;
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    41
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    42
class CRTSecMgrScriptSession;
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    43
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    44
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    45
enum TLiwLoadStatus
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    46
{
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    47
	KLiwUnknown = -5,
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    48
	KLiwMetaDataInvalidFormat, 			//-4
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    49
	KLiwInvalidVersionSpecification,	//-3
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    50
	KLiwVersionOutOfRange,				//-2
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    51
	KLiwSecurityAccessCheckFailed,		//-1
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    52
	KLiwServiceLoadSuccess,				//0
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    53
	KLiwServiceAlreadyLoaded			//1
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    54
	
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    55
	//..Other possible error codes	
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    56
};
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    57
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    58
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    59
// CLASS DECLARATION
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    60
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    61
/**
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    62
* CLiwServiceHandler is the main class of the Language Interworking
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    63
* Framework. The Service Handler implements support for dynamically
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    64
* loadable service providers which offer services to consumer applications. 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    65
* The Service Handler maps consumers and service providers together via 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    66
* interests and data agreements and hides the consumers from the providers. 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    67
*
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    68
* SERVICE is any command or functionality offered by a provider to 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    69
* consumer. The service includes typically menu item UI elements,
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    70
* but it can also just an engine type of command which executes specific 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    71
* functionality and reports status back to the consumer.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    72
*
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    73
* CONSUMER application accesses interesting services offered by
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    74
* service provider(s). The consumer uses only those services in which
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    75
* it is interested in. The interest is expressed using a set of criteria
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    76
* items.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    77
*
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    78
* INTEREST is a list of criteria items.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    79
*
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    80
* CRITERIA consists of set of attributes which guide the LIW Framework to use
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    81
* only those providers in which the consumer is interested in.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    82
* The criteria consists of following attributes:
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    83
*   - Criteria UID (we can allocate pre-defined criteria items).
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    84
*   - Service command UID (we can allocate pre-defined commands).
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    85
*   - Content MIME type (string).
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    86
*   - Additional options (variant data type just in case).
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    87
*
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    88
* PROVIDER produces those services for a consumer that match the given criteria 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    89
* specified by the consumer. A provider can offer menu items and their command
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    90
* handling logic to the consumer applications. A provider can also offer base
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    91
* services that don't require any UI elements.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    92
*
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    93
* DATA AGREEMENT is an agreement between consumer and provider about parameters 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    94
* needed to be passed in a use case.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    95
*
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    96
* @lib ServiceHandler.lib
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    97
* @since Series 60 2.6
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    98
*/
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
    99
NONSHARABLE_CLASS(CLiwServiceHandler) : public CBase
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   100
    {
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   101
    public:  // Construction & destruction
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   102
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   103
        /**
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   104
        * Constructs a Service Handler instance.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   105
        */
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   106
        IMPORT_C static CLiwServiceHandler* NewL();
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   107
        
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   108
        /**
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   109
        * Constructs a Service Handler instance.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   110
        */
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   111
        IMPORT_C static CLiwServiceHandler* NewLC();  
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   112
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   113
        /** 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   114
        * Destructor.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   115
        */
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   116
        IMPORT_C virtual ~CLiwServiceHandler();
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   117
        
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   118
    public:  // Management
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   119
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   120
        /**
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   121
        * Resets the Service Handler, discards existing interest and unloads 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   122
        * corresponding service providers.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   123
        */
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   124
        IMPORT_C void Reset();
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   125
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   126
        /**
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   127
        * Returns the amount of providers that fulfil the given criteria.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   128
        *
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   129
        * @param aCriteria Criteria to match.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   130
        * @return Number of providers matching the criteria.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   131
        */
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   132
        IMPORT_C TInt NbrOfProviders(const CLiwCriteriaItem* aCriteria);
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   133
        
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   134
    public:  // Interest handling
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   135
        
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   136
        /**
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   137
        * Adds the given interest to the Service Handler from a resource and updates 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   138
        * possibly existing old interest. Corresponding service providers are loaded.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   139
        * If a provider leaves during initialization, it is trapped by the Service Handler.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   140
        *
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   141
        * @param aInterestResourceId ID of the resource containing criteria items.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   142
        * @leave KErrNotSupported CCoeEnv is not accessible.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   143
        * @see Reset
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   144
        */
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   145
        IMPORT_C void AttachL(TInt aInterestResourceId);
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   146
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   147
        /**
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   148
        * Adds given interest to the Service Handler from an array of criteria items.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   149
        * If a provider leaves during initialization, it is trapped by the Service Handler.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   150
        *
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   151
        * @param aInterest Array of criteria items. Ownership is not transferred.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   152
        */
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   153
        IMPORT_C TInt AttachL(const RCriteriaArray& aInterest);
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   154
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   155
        /**
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   156
        * Gets the currently valid interest in use by the Service Handler.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   157
        *
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   158
        * @param aInterest An array of returned criteria items, may be empty.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   159
        *                  Ownership is not transferred, i.e. the objects in the 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   160
        *                  array must not be deleted.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   161
        */
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   162
        IMPORT_C void GetInterest(RCriteriaArray& aInterest);
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   163
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   164
        /**
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   165
        * Removes given interest from the Service Handler. Corresponding service 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   166
        * providers are unloaded.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   167
        * 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   168
        * @param aInterest Array of returned criteria items, may be empty.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   169
        */
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   170
        IMPORT_C void DetachL(const RCriteriaArray& aInterest);
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   171
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   172
        /**
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   173
        * Removes given interest from the Service Handler. Corresponding service 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   174
        * providers are unloaded.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   175
        * 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   176
        * @param aInterestResourceId ID of the resource containing criteria items.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   177
        * @leave KErrNotSupported CCoeEnv is not accessible.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   178
        */
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   179
        IMPORT_C void DetachL(TInt aInterestResourceId);
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   180
        
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   181
        /**
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   182
        * Returns criteria by ID.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   183
        *
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   184
        * @param aId Criteria ID.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   185
        * @return Criteria item pointer matching the ID. Ownership is not transferred.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   186
        */
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   187
        IMPORT_C const CLiwCriteriaItem* GetCriteria(TInt aId);
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   188
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   189
        /**
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   190
        * Returns an empty instance of CLiwGenericParamList class. It can be
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   191
        * used for example as an input parameter list for the Service Handler's
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   192
        * API methods. This is just a convenience method and doesn't have
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   193
        * to be used. If consumer wants to create input list by itself
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   194
        * it is ok. If this method is used, the Service Handler takes care
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   195
        * of deleting returned generic parameter list.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   196
        *
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   197
        * @return  An empty instance of CLiwGenericParameter list.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   198
        */
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   199
        IMPORT_C CLiwGenericParamList& InParamListL();
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   200
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   201
        /**
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   202
        * Returns an empty instance of CLiwGenericParamList class. The instance can be
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   203
        * used for example as an output parameter list for Service Handler
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   204
        * API methods. This is just a convenience method and doesn't have
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   205
        * to be used. If consumer wants to create output list by itself
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   206
        * it is ok. If this method is used, Service Handler takes care
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   207
        * of deleting returned generic parameter list.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   208
        *
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   209
        * @return  An empty instance of CLiwGenericParameter list.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   210
        */
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   211
        IMPORT_C CLiwGenericParamList& OutParamListL();
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   212
        
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   213
    public:  // Menu handling
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   214
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   215
        /**
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   216
        * Initialises menu pane with service commands from a provider.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   217
        * This method must be called upon DynInitMenuPaneL of consumer
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   218
        * application in order to let the provider to hook its menu items.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   219
        *
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   220
        * @param aMenuPane Handle of the menu pane to initialise.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   221
        * @param aMenuResourceId The menu to be attached.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   222
        * @param aBaseMenuCmdId Base ID for the Service Handler to generate 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   223
        *                       menu IDs for placeholders.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   224
        * @param aInParamList Input parameter list for provider's parameters checking.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   225
        * @leave KErrNotSupported CCoeEnv is not accessible.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   226
        * @leave KErrOverflow Consumer application has too many LIW placeholders in its menu. 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   227
        *                     Currently, maximum 16 is supported.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   228
        */
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   229
        IMPORT_C void InitializeMenuPaneL(
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   230
            CEikMenuPane& aMenuPane,
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   231
            TInt aMenuResourceId,
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   232
            TInt aBaseMenuCmdId,
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   233
            const CLiwGenericParamList& aInParamList);
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   234
        /**
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   235
        * Initialises menu pane with service commands from a provider.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   236
        * This method must be called upon DynInitMenuPaneL of consumer
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   237
        * application in order to let the provider to hook its menu items.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   238
        * In normal circumstances, the other variant of this method should be used.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   239
        *
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   240
        * @param aMenuPane Handle of the menu pane to initialise.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   241
        * @param aMenuResourceId The menu to be attached.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   242
        * @param aBaseMenuCmdId Base ID for the Service Handler to generate 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   243
        *                       menu IDs for placeholders.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   244
        * @param aInParamList Input parameter list for provider's parameters checking.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   245
        * @param aUseSubmenuTextsIfAvailable If the provider has specified alternative submenu
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   246
        *                       texts for its menu items, those can be taken into use if this 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   247
        *                       parameter is set to ETrue. This should be used only for manually 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   248
        *                       created submenus. If using LIW_CASCADE_ID or 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   249
        *                       LIW_INTELLIGENT_CASCADE_ID, the LIW framework can automatically 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   250
        *                       decide whether to use the submenu texts or not, and this parameter 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   251
        *                       has no effect.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   252
        * @leave KErrNotSupported CCoeEnv is not accessible.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   253
        * @leave KErrOverflow Consumer application has too many LIW placeholders in its menu. 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   254
        *                     Currently, maximum 16 is supported.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   255
        */
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   256
        IMPORT_C void InitializeMenuPaneL(
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   257
            CEikMenuPane& aMenuPane,
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   258
            TInt aMenuResourceId,
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   259
            TInt aBaseMenuCmdId,
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   260
            const CLiwGenericParamList& aInParamList,
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   261
            TBool aUseSubmenuTextsIfAvailable);            
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   262
        
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   263
        /**
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   264
        * Returns the service command ID associated to the menu command. If found, it means 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   265
        * that there is a provider which can handle the menu command. Thus the command 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   266
        * handling needs to be routed to the provider via ExecuteMenuCmdL.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   267
        *
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   268
        * @param aMenuCmdId Menu command ID to be mapped to service cmd,
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   269
        *                   KNullServiceCmd is returned if no service command exists.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   270
        * @return Service command ID, KLiwCmdNone if no ID is found.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   271
        * @see ExecuteMenuCmdL
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   272
        */
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   273
        IMPORT_C TInt ServiceCmdByMenuCmd(TInt aMenuCmdId) const;
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   274
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   275
        /**
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   276
        * Tells the provider to execute a menu command invoked by the consumer.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   277
        * Not supported if calling outside UI framework. Use ServiceCmdByMenuCmd to 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   278
        * check if there is any provider for the menu command.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   279
        *
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   280
        * @param aMenuCmdId The menu command to be executed.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   281
        * @param aInParamList Input data parameters, can be an empty list.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   282
        * @param aOutParamList Output data parameters, can be an empty list.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   283
        * @param aCmdOptions Options for the command, see TLiwServiceCmdOptions in LiwCommon.hrh.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   284
        * @param aCallback Callback for asynchronous command handling, parameter checking, etc.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   285
        * @leave KErrArgument Callback is missing when required.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   286
        * @leave KErrNotSupported No cmd matches given menu command or CCoeEnv is not accessible.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   287
        * @see ServiceCmdByMenuCmd
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   288
        */
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   289
        IMPORT_C void ExecuteMenuCmdL(
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   290
            TInt aMenuCmdId,
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   291
            const CLiwGenericParamList& aInParamList,
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   292
            CLiwGenericParamList& aOutParamList,
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   293
            TUint aCmdOptions = 0,
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   294
            MLiwNotifyCallback* aCallback= NULL);
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   295
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   296
        /**
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   297
        * Attach menu related criteria items to the given menu.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   298
        * If a provider leaves during initialization, it is trapped by the Service Handler. 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   299
        *
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   300
        * @param aMenuResourceId      Menu to be attached.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   301
        * @param aInterestResourceId  Resource id for the interest list.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   302
        * @leave KErrNotSupported     CCoeEnv is not accessible.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   303
        */
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   304
        IMPORT_C void AttachMenuL(TInt aMenuResourceId, TInt aInterestResourceId);
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   305
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   306
        /**
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   307
        * Attach menu related criteria items to the given menu.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   308
        * If a provider leaves during initialization, it is trapped by the Service Handler. 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   309
        *
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   310
        * @param aMenuResourceId  Menu to be attached.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   311
        * @param aReader          Resource reader for the interest list.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   312
        * @leave KErrNotSupported CCoeEnv is not accessible.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   313
        */
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   314
        IMPORT_C void AttachMenuL(TInt aMenuResourceId, TResourceReader& aReader);
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   315
         /**
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   316
        * Attach menu related criteria items to the given menu. 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   317
        *
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   318
        * @param aMenuResourceId  Menu to be attached.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   319
        * @param aInterest        Array of criteria items. Ownership is not transferred.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   320
        * @leave KErrNotSupported CCoeEnv is not accessible.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   321
        */
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   322
        IMPORT_C void AttachMenuL(TInt aMenuResourceId, const RCriteriaArray& aInterest);
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   323
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   324
        /**
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   325
        * Attach menu related criteria items to the given menu. 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   326
        *
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   327
        * @param aMenuEntries     List of menu command ids, ids not related to interests may be set to 0.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   328
        * @param aMenuResourceId  Menu to be attached.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   329
        * @param aInterest        Interest list.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   330
        */
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   331
        IMPORT_C void AttachMenuL(RArray<TInt>& aMenuEntries, TInt aMenuResourceId, RCriteriaArray& aInterest);
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   332
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   333
        /**
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   334
        * Detach menu related criteria items from the given menu.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   335
        * In following cases this method just returns without doing anything:
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   336
        *   1. If interest resource id is non-zero and CCoeEnv is not accessible.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   337
        *   2. If interest resource id is non-zero and there occurs an error when reading
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   338
        *      the interest (e.g. not enough memory). 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   339
        * 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   340
        * @param aMenuResourceId      Menu to be detached.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   341
        * @param aInterestResourceId  Resource id for the interest list. If NULL, all 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   342
        *                             criteria items are detached from the given menu.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   343
        */
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   344
        IMPORT_C void DetachMenu(TInt aMenuResourceId, TInt aInterestResourceId);
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   345
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   346
        /**
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   347
        * Checks if there are menu providers attached to given menu id. Consumer 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   348
        * application can use this information to decide whether a sub menu 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   349
        * containing only LIW items should be hidden or not.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   350
        *
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   351
        * @param  aSubMenuId The menu id to be checked.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   352
        * @return ETrue  if there isn't any menu providers attached to this menu.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   353
        *         EFalse otherwise. 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   354
        */
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   355
        IMPORT_C TBool IsSubMenuEmpty(TInt aSubMenuId);
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   356
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   357
        /**
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   358
        * Returns boolean value indicating whether the given menu contains
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   359
        * currently attached placeholders.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   360
        *
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   361
        * @param   aMenuResourceId  Resource id of the menu to be queried.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   362
        * @return  ETrue  if aMenuResource contains currently attached placeholders.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   363
        *          EFalse otherwise. 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   364
        */
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   365
        IMPORT_C TBool IsLiwMenu(TInt aMenuResourceId);
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   366
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   367
        /**
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   368
        * Handles LIW submenus. This method should be called from consumer application's 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   369
        * DynInitMenuPaneL.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   370
        *
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   371
        * @param  aPane  Menu pane to be handled.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   372
        * @return ETrue  if aPane was an LIW submenu and it was handled. 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   373
        *                Consumer's DynInitMenuPaneL pane may now return.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   374
        *         EFalse if aPane was not an LIW submenu and DynInitMenuPaneL should
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   375
        *                continue normally.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   376
        */
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   377
        IMPORT_C TBool HandleSubmenuL(CEikMenuPane& aPane);
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   378
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   379
        /**
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   380
        * CEikMenuPane uses this method to inform AIF framework that a menu is launched.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   381
        * This method does not need to be called by any other component.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   382
        *
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   383
        * @since Series 60 3.0
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   384
        */
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   385
        IMPORT_C static void ReportMenuLaunch();
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   386
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   387
    public:  // Generic Service Command handling
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   388
        
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   389
        /**
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   390
        * Executes a service command for all providers. Otherwise similar to ExecuteMenuCmdL.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   391
        *
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   392
        * @param aCmdId The command to be executed.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   393
        * @param aInParamList Input data parameters, can be an empty list.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   394
        * @param aOutParamList Output data parameters, can be an empty list.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   395
        * @param aCmdOptions Options for the command, see TLiwServiceCmdOptions in LiwCommon.hrh.    
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   396
        * @param aCallback Callback for asynchronous command handling, parameter checking, etc.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   397
        * @leave KErrArgument Callback is missing when required.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   398
        * @leave KErrNotSupported No provider supports the service.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   399
        */
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   400
        IMPORT_C void ExecuteServiceCmdL(
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   401
            const TInt& aCmdId,
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   402
            const CLiwGenericParamList& aInParamList,
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   403
            CLiwGenericParamList& aOutParamList,
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   404
            TUint aCmdOptions = 0,
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   405
            MLiwNotifyCallback* aCallback = 0);
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   406
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   407
        /**
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   408
        * Executes a service command.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   409
        *
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   410
        * @param aCmd The criteria item containing the service command and content type
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   411
        * @param aInParamList Input data parameters, can be an empty list.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   412
        * @param aOutParamList Output data parameters, can be an empty list.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   413
        * @param aCmdOptions Options for the command, see TLiwServiceCmdOptions in LiwCommon.hrh.    
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   414
        * @param aCallback Callback for asynchronous command handling, parameter checking, etc.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   415
        * @leave KErrArgument Callback is missing when required.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   416
        * @leave KErrNotSupported No provider supports the service.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   417
        */
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   418
        IMPORT_C void ExecuteServiceCmdL(                     
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   419
            const CLiwCriteriaItem& aCmd,
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   420
            const CLiwGenericParamList& aInParamList,
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   421
            CLiwGenericParamList& aOutParamList,
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   422
            TUint aCmdOptions = 0,
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   423
            MLiwNotifyCallback* aCallback = 0);
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   424
              
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   425
        /**
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   426
        * Gets provider command ID by dynamic command ID.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   427
        * 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   428
        * @since Series 60 3.0
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   429
        * @param aMenuCmdId The consumer's menu command ID generated by LIW framework. 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   430
        *                   This can be get e.g. from consumer's HandleCommandL().
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   431
        * @return Found provider menu command ID, KErrNotFound if not found.
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   432
        */
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   433
        IMPORT_C TInt MenuCmdId(TInt aMenuCmdId) const;
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   434
        
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   435
        IMPORT_C TInt AttachL(const RCriteriaArray& aInterest,CRTSecMgrScriptSession& aSecMgrScriptSession);
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   436
                
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   437
 	  /**
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   438
        * Lists available service implementations
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   439
        * 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   440
        * @param aFilterItem 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   441
        * @param aProviderList 
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   442
        *              
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   443
        * @return none
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   444
        */
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   445
        IMPORT_C void QueryImplementationL(RCriteriaArray& aFilterItem, RCriteriaArray& aProviderList);
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   446
        
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   447
    private:
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   448
        void ConstructL();
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   449
        CLiwServiceHandler();
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   450
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   451
    private:
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   452
        CLiwServiceHandlerImpl* iImpl;
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   453
    };
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   454
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   455
#endif // LIW_SERVICE_HANDLER_H
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   456
d2ab7c3d0c48 homescreenpluginsrv component compiles now
Christian Morlok <symbian.org@christianmorlok.de>
parents:
diff changeset
   457
// END of File