epoc32/include/ecom/ecom.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.
williamr@2
     1
// Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
williamr@2
     2
// All rights reserved.
williamr@2
     3
// This component and the accompanying materials are made available
williamr@4
     4
// under the terms of "Eclipse Public License v1.0"
williamr@2
     5
// which accompanies this distribution, and is available
williamr@4
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
williamr@2
     7
//
williamr@2
     8
// Initial Contributors:
williamr@2
     9
// Nokia Corporation - initial contribution.
williamr@2
    10
//
williamr@2
    11
// Contributors:
williamr@2
    12
//
williamr@2
    13
// Description:
williamr@4
    14
// The API definitions required for the use of the ECOM framework by a client 
williamr@4
    15
// are contained / defined here.
williamr@2
    16
// 
williamr@2
    17
//
williamr@2
    18
williamr@4
    19
/**
williamr@4
    20
 @file
williamr@4
    21
 @publishedAll
williamr@4
    22
 @released 
williamr@4
    23
*/
williamr@2
    24
williamr@2
    25
#ifndef __ECOM_H__
williamr@2
    26
#define __ECOM_H__
williamr@2
    27
williamr@4
    28
// ____________________________________________________________________________
williamr@4
    29
// INCLUDES
williamr@2
    30
williamr@2
    31
#include <e32base.h>
williamr@2
    32
#include <s32std.h>
williamr@2
    33
#include <f32file.h>
williamr@2
    34
williamr@2
    35
#include <ecom/ecomerrorcodes.h>
williamr@2
    36
#include <ecom/ecomresolverparams.h>
williamr@2
    37
#include <ecom/implementationinformation.h>
williamr@2
    38
williamr@2
    39
williamr@4
    40
// ____________________________________________________________________________
williamr@4
    41
// CONSTANTS
williamr@2
    42
williamr@2
    43
class CGlobalData;
williamr@2
    44
williamr@2
    45
/** 
williamr@2
    46
The UID identifying the ROM-Only CResolver Interface Implementation. 
williamr@2
    47
This resolver only returns implementations present on R/O internal media
williamr@2
    48
(built-in) or upgrades of such implementations on R/W media. It does not 
williamr@2
    49
return implementations that solely reside on R/W media. 
williamr@2
    50
*/
williamr@2
    51
const TUid KRomOnlyResolverUid = {0x10009D92};
williamr@2
    52
williamr@2
    53
williamr@4
    54
// ____________________________________________________________________________
williamr@4
    55
// CLASSES
williamr@2
    56
williamr@2
    57
/**
williamr@2
    58
The REComSession singleton class provides an API to identify (resolution), 
williamr@2
    59
instantiate, and destroy interface class implementations requested by 
williamr@2
    60
ECOM clients. It manages the session connection to the ECOM Server itself so 
williamr@2
    61
that typically only one connection is made to the ECOM Server per thread.
williamr@2
    62
It provides an un-initialise function where it releases memory and handles
williamr@2
    63
of unused plug-ins, see the FinalClose() function. It also ensures that all
williamr@2
    64
necessary clean-up is performed in the event of a Leave by any of the
williamr@2
    65
ListImplementationsL() or CreateImplementationL() methods.
williamr@2
    66
williamr@2
    67
Note: Although a public default constructor is provided in this class
williamr@2
    68
it is strongly recommended this object is never created by users of this
williamr@2
    69
API on the stack or heap by value. To access the non-static methods of this
williamr@2
    70
API use the static OpenL() method to obtain a pointer or a 
williamr@2
    71
reference to the single reference counted session in use. Close() must be 
williamr@2
    72
called when finished with.
williamr@2
    73
williamr@4
    74
Special care must be taken when using aInstanceKey. It is a 32-bit instance key
williamr@2
    75
that is returned from a call to one of the CreateImplementationL() methods. 
williamr@2
    76
This instance key must only be used with DestroyedImplementation() to identify
williamr@2
    77
the implementation instance for destruction, or GetImplementationUidL() to
williamr@2
    78
retrieve the Implementation Uid of the instance it refers to.
williamr@2
    79
No meaning must be attached to this instance key by ECOM clients 
williamr@2
    80
and it must not be used for any other purpose.
williamr@2
    81
williamr@2
    82
williamr@2
    83
@see REComSession::FinalClose()
williamr@2
    84
*/
williamr@2
    85
class REComSession  : public RSessionBase
williamr@2
    86
	{
williamr@2
    87
	friend class CGlobalData;
williamr@4
    88
	
williamr@4
    89
public: // publishedAll APIs
williamr@4
    90
        // Available for use by all clients
williamr@2
    91
williamr@2
    92
	IMPORT_C REComSession();
williamr@4
    93
	
williamr@2
    94
	IMPORT_C static REComSession& OpenL();
williamr@2
    95
	IMPORT_C void Close();
williamr@4
    96
williamr@4
    97
	// Get Implementation Uid from an Instance Key
williamr@4
    98
	IMPORT_C static TUid GetImplementationUidL(
williamr@4
    99
							TUid aInstanceKey);
williamr@4
   100
williamr@4
   101
    // Destroy Implementation API declaration											
williamr@4
   102
	IMPORT_C static void DestroyedImplementation(
williamr@4
   103
                            TUid aInstanceKey);
williamr@4
   104
williamr@4
   105
	// See developer documentation for use of FinalClose.
williamr@4
   106
	IMPORT_C static void FinalClose();
williamr@2
   107
	
williamr@4
   108
williamr@2
   109
	// Notification API declarations
williamr@4
   110
    //
williamr@2
   111
     
williamr@2
   112
	IMPORT_C void NotifyOnChange(TRequestStatus& aStatus);
williamr@2
   113
	IMPORT_C void CancelNotifyOnChange(TRequestStatus& aStatus);
williamr@2
   114
	
williamr@4
   115
	
williamr@2
   116
	// List implementations API declarations
williamr@2
   117
	//
williamr@2
   118
	// Use LI1 to list all implementations, unfiltered.
williamr@2
   119
	// Use LI2 when default resolving required on the returned list.
williamr@2
   120
	// Use LI3 when custom resolving required on the returned list.
williamr@4
   121
		
williamr@2
   122
	// ListImplementationsL - LI1
williamr@2
   123
	IMPORT_C static void ListImplementationsL(
williamr@2
   124
                            TUid aInterfaceUid,
williamr@2
   125
							RImplInfoPtrArray& aImplInfoArray);
williamr@2
   126
							
williamr@2
   127
	// ListImplementationsL - LI2
williamr@2
   128
	IMPORT_C static void ListImplementationsL(
williamr@2
   129
                            TUid aInterfaceUid, 
williamr@2
   130
							const TEComResolverParams& aResolutionParameters,
williamr@2
   131
							RImplInfoPtrArray& aImplInfoArray);
williamr@2
   132
							
williamr@2
   133
	// ListImplementationsL - LI3
williamr@2
   134
	IMPORT_C static void ListImplementationsL(
williamr@2
   135
                            TUid aInterfaceUid, 
williamr@2
   136
							const TEComResolverParams& aResolutionParameters, 
williamr@2
   137
							TUid aResolverUid,
williamr@2
   138
							RImplInfoPtrArray& aImplInfoArray);
williamr@4
   139
							
williamr@4
   140
	// Use LI7 to list all implementations, unfiltered and with no capability chaeck.
williamr@4
   141
	// Use LI8 when default resolving required on the returned list and with no capability chaeck.
williamr@4
   142
	// Use LI9 when custom resolving required on the returned list and with no capability chaeck.
williamr@4
   143
		
williamr@4
   144
	// ListImplementationsL - LI7
williamr@4
   145
	IMPORT_C static void ListImplementationsL(
williamr@4
   146
                            TUid aInterfaceUid,
williamr@4
   147
							RImplInfoPtrArray& aImplInfoArray,TBool aCapabilityCheck);
williamr@4
   148
							
williamr@4
   149
	// ListImplementationsL - LI8
williamr@4
   150
	IMPORT_C static void ListImplementationsL(
williamr@4
   151
                            TUid aInterfaceUid, 
williamr@4
   152
							const TEComResolverParams& aResolutionParameters,
williamr@4
   153
							RImplInfoPtrArray& aImplInfoArray,TBool aCapabilityCheck);
williamr@4
   154
							
williamr@4
   155
	// ListImplementationsL - LI9
williamr@4
   156
	IMPORT_C static void ListImplementationsL(
williamr@4
   157
                            TUid aInterfaceUid, 
williamr@4
   158
							const TEComResolverParams& aResolutionParameters, 
williamr@4
   159
							TUid aResolverUid,
williamr@4
   160
							RImplInfoPtrArray& aImplInfoArray,TBool aCapabilityCheck);						
williamr@4
   161
williamr@2
   162
williamr@2
   163
	// Create implementations API declarations
williamr@2
   164
    //
williamr@2
   165
    // When Implementation UID is known: 
williamr@2
   166
    // Use CI1, CI2. 
williamr@2
   167
    // Use CI3, CI4 when you have construction parameters.
williamr@2
   168
    //
williamr@2
   169
    // When the Interface UID is known and default resolving is required:
williamr@2
   170
    // Use CI5, CI6. 
williamr@2
   171
    // Use CI7, CI8 when you have construction parameters.
williamr@2
   172
    // 
williamr@2
   173
    // When the Interface UID is known and custom resolving is required:
williamr@2
   174
    // Use CI9, CI10.
williamr@2
   175
    // Use CI11, CI12 when you have construction parameters.
williamr@4
   176
    	
williamr@2
   177
	// CreateImplementationL - CI1
williamr@2
   178
	IMPORT_C static TAny* CreateImplementationL(
williamr@2
   179
                            TUid aImplementationUid, 
williamr@4
   180
                            TUid& aInstanceKey);
williamr@2
   181
                            
williamr@2
   182
	// CreateImplementationL - CI2
williamr@2
   183
	IMPORT_C static TAny* CreateImplementationL(
williamr@2
   184
                            TUid aImplementationUid, 
williamr@2
   185
							TInt32 aKeyOffset);
williamr@2
   186
							
williamr@2
   187
	// CreateImplementationL - CI3
williamr@2
   188
	IMPORT_C static TAny* CreateImplementationL(
williamr@2
   189
                            TUid aImplementationUid, 
williamr@4
   190
							TUid& aInstanceKey, 
williamr@2
   191
							TAny* aConstructionParameters);
williamr@2
   192
							
williamr@2
   193
	// CreateImplementationL - CI4
williamr@2
   194
	IMPORT_C static TAny* CreateImplementationL(
williamr@2
   195
                            TUid aImplementationUid, 
williamr@2
   196
							TInt32 aKeyOffset,
williamr@2
   197
							TAny* aConstructionParameters);
williamr@2
   198
							
williamr@2
   199
	// CreateImplementationL - CI5
williamr@2
   200
	IMPORT_C static TAny* CreateImplementationL(
williamr@2
   201
                            TUid aInterfaceUid, 
williamr@4
   202
							TUid& aInstanceKey,
williamr@2
   203
							const TEComResolverParams& aResolutionParameters);
williamr@2
   204
							
williamr@2
   205
	// CreateImplementationL - CI6
williamr@2
   206
	IMPORT_C static TAny* CreateImplementationL(
williamr@2
   207
                            TUid aInterfaceUid, 
williamr@2
   208
							TInt32 aKeyOffset, 
williamr@2
   209
							const TEComResolverParams& aResolutionParameters);
williamr@2
   210
							
williamr@2
   211
	// CreateImplementationL - CI7
williamr@2
   212
	IMPORT_C static TAny* CreateImplementationL(
williamr@2
   213
                            TUid aInterfaceUid, 
williamr@4
   214
							TUid& aInstanceKey, 
williamr@2
   215
							TAny* aConstructionParameters, 
williamr@2
   216
							const TEComResolverParams& aResolutionParameters);
williamr@2
   217
							
williamr@2
   218
	// CreateImplementationL - CI8
williamr@2
   219
	IMPORT_C static TAny* CreateImplementationL(
williamr@2
   220
                            TUid aInterfaceUid, 
williamr@2
   221
							TInt32 aKeyOffset, 
williamr@2
   222
							TAny* aConstructionParameters, 
williamr@2
   223
							const TEComResolverParams& aResolutionParameters);
williamr@2
   224
							
williamr@2
   225
	// CreateImplementationL - CI9
williamr@2
   226
	IMPORT_C static TAny* CreateImplementationL(
williamr@2
   227
                            TUid aInterfaceUid, 
williamr@4
   228
							TUid& aInstanceKey, 
williamr@2
   229
							const TEComResolverParams& aResolutionParameters,
williamr@2
   230
							TUid aResolverUid);
williamr@2
   231
												
williamr@2
   232
	// CreateImplementationL - CI10
williamr@2
   233
	IMPORT_C static TAny* CreateImplementationL(
williamr@2
   234
                            TUid aInterfaceUid, 
williamr@2
   235
							TInt32 aKeyOffset,
williamr@2
   236
							const TEComResolverParams& aResolutionParameters, 
williamr@2
   237
							TUid aResolverUid);
williamr@2
   238
												
williamr@2
   239
	// CreateImplementationL - CI11
williamr@2
   240
	IMPORT_C static TAny* CreateImplementationL(
williamr@2
   241
                            TUid aInterfaceUid, 
williamr@4
   242
							TUid& aInstanceKey, 
williamr@2
   243
							TAny* aConstructionParameters,
williamr@2
   244
							const TEComResolverParams& aResolutionParameters, 
williamr@2
   245
							TUid aResolverUid);
williamr@2
   246
												
williamr@2
   247
	// CreateImplementationL - CI12
williamr@2
   248
	IMPORT_C static TAny* CreateImplementationL(
williamr@2
   249
                            TUid aInterfaceUid, 
williamr@2
   250
							TInt32 aKeyOffset, 
williamr@2
   251
							TAny* aConstructionParameters,
williamr@2
   252
							const TEComResolverParams& aResolutionParameters,
williamr@2
   253
							TUid aResolverUid);
williamr@2
   254
	
williamr@4
   255
williamr@4
   256
public: // publishedPartner APIs
williamr@4
   257
        // Extended interfaces API declarations available for use by 
williamr@4
   258
        // all system software i.e by phone manufacturers and internally (i.e. not supported for use by 3rd parties)
williamr@4
   259
        // See Symbian OS Developer Library and ECOM How To/FAQ documentation.
williamr@4
   260
				
williamr@4
   261
                			
williamr@4
   262
	// List implementations API declarations
williamr@4
   263
	//
williamr@4
   264
	// Use L14 to list all implementations which satisfy interface, extended 
williamr@4
   265
    //      interfaces
williamr@4
   266
	// Use L15 to list all implementations which satisfy interface, extended 
williamr@4
   267
    //      interfaces when default resolving required on the list returned
williamr@4
   268
	// Use L16 to list all implementations which satisfy interface, extended
williamr@4
   269
    //      interfaces when custom resolving required on the list returned
williamr@4
   270
		
williamr@4
   271
	// ListImplementationsL - LI4
williamr@4
   272
	IMPORT_C static void ListImplementationsL(
williamr@4
   273
                            TUid aInterfaceUid,
williamr@4
   274
                            RExtendedInterfacesArray& aExtendedInterfaces,
williamr@4
   275
							RImplInfoPtrArray& aImplInfoArray);
williamr@4
   276
							
williamr@4
   277
	// ListImplementationsL - LI5
williamr@4
   278
	IMPORT_C static void ListImplementationsL(
williamr@4
   279
                            TUid aInterfaceUid, 
williamr@4
   280
                            RExtendedInterfacesArray& aExtendedInterfaces,
williamr@4
   281
							const TEComResolverParams& aResolutionParameters,
williamr@4
   282
							RImplInfoPtrArray& aImplInfoArray);
williamr@4
   283
							
williamr@4
   284
	// ListImplementationsL - LI6
williamr@4
   285
	IMPORT_C static void ListImplementationsL(
williamr@4
   286
                            TUid aInterfaceUid, 
williamr@4
   287
                            RExtendedInterfacesArray& aExtendedInterfaces,
williamr@4
   288
							const TEComResolverParams& aResolutionParameters, 
williamr@4
   289
							TUid aResolverUid,
williamr@4
   290
							RImplInfoPtrArray& aImplInfoArray);
williamr@4
   291
			
williamr@4
   292
			
williamr@4
   293
	// Create implementations API declarations
williamr@4
   294
    //
williamr@4
   295
    // When the interface UID and  the extended interface UID's are known 
williamr@4
   296
	//     and default resolving is required. The construction parameters may 
williamr@4
   297
    //     optionally be provided.
williamr@4
   298
    //     Use CI13: Instance key is returned
williamr@4
   299
 	//     Use CI14: An offset to aInstanceKey returned by the ECom framework 
williamr@4
   300
    //         to identify this instance to the framework
williamr@4
   301
	// When the interface UID and  the extended interface UID's are known 
williamr@4
   302
	//     and custom resolving is required.  The construction parameters may 
williamr@4
   303
    //     optionally be provided.
williamr@4
   304
    //     Use CI15: Instance key is returned
williamr@4
   305
    //     Use CI16: An offset to aInstanceKey returned by the ECom framework 
williamr@4
   306
    //         to identify this instance to the framework
williamr@4
   307
    	
williamr@4
   308
	// CreateImplementationL - CI13
williamr@4
   309
	IMPORT_C static TAny* CreateImplementationL(
williamr@4
   310
                            TUid aInterfaceUid, 
williamr@4
   311
                            const RExtendedInterfacesArray& aExtendedInterfaces,
williamr@4
   312
							TUid& aInstanceKey, 
williamr@4
   313
							const TEComResolverParams& aResolutionParameters,
williamr@4
   314
							TAny* aConstructionParameters = NULL);
williamr@4
   315
												
williamr@4
   316
	// CreateImplementationL - CI14
williamr@4
   317
	IMPORT_C static TAny* CreateImplementationL(
williamr@4
   318
                            TUid aInterfaceUid, 
williamr@4
   319
                            const RExtendedInterfacesArray& aExtendedInterfaces,
williamr@4
   320
							TInt32 aKeyOffset, 
williamr@4
   321
							const TEComResolverParams& aResolutionParameters,
williamr@4
   322
							TAny* aConstructionParameters = NULL);			
williamr@4
   323
williamr@4
   324
	// CreateImplementationL - CI15
williamr@4
   325
	IMPORT_C static TAny* CreateImplementationL(
williamr@4
   326
                            TUid aInterfaceUid, 
williamr@4
   327
                            const RExtendedInterfacesArray& aExtendedInterfaces,
williamr@4
   328
							TUid& aInstanceKey, 
williamr@4
   329
							const TEComResolverParams& aResolutionParameters, 
williamr@4
   330
							TUid aResolverUid,
williamr@4
   331
							TAny* aConstructionParameters = NULL);
williamr@4
   332
												
williamr@4
   333
	// CreateImplementationL - CI16
williamr@4
   334
	IMPORT_C static TAny* CreateImplementationL(
williamr@4
   335
                            TUid aInterfaceUid, 
williamr@4
   336
                            const RExtendedInterfacesArray& aExtendedInterfaces,
williamr@4
   337
							TInt32 aKeyOffset, 
williamr@4
   338
							const TEComResolverParams& aResolutionParameters,
williamr@4
   339
							TUid aResolverUid,
williamr@4
   340
							TAny* aConstructionParameters = NULL);	
williamr@4
   341
           		
williamr@4
   342
                   	
williamr@4
   343
	// Extended Interface query and management API declarations
williamr@4
   344
	//
williamr@4
   345
							
williamr@4
   346
	IMPORT_C static TAny* GetExtendedInterfaceL(
williamr@4
   347
                            const TUid& aInstanceKey, 
williamr@4
   348
                            const TUid& aExtendedInterfaceUid);
williamr@2
   349
	
williamr@4
   350
	IMPORT_C static void ListExtendedInterfacesL(
williamr@4
   351
                            const TUid& aImplementationUid, 
williamr@4
   352
                            RExtendedInterfacesArray& aIfInfo);
williamr@4
   353
	
williamr@4
   354
	IMPORT_C static void ManuallyReleaseExtendedInterfaceL(
williamr@4
   355
                            const TUid& aInstanceKey, 
williamr@4
   356
                            const TUid& aExtendedInterfaceUid);
williamr@4
   357
	
williamr@2
   358
williamr@4
   359
private: // @internalComponent APIs
williamr@4
   360
         // This API is for internal testing purposes.Should not be used externally by clients.
williamr@2
   361
williamr@2
   362
	static REComSession& OpenLC();
williamr@2
   363
	
williamr@2
   364
	void ConstructL();
williamr@2
   365
	void ReallyClose();
williamr@2
   366
	
williamr@2
   367
	void ListImplementationsL(
williamr@2
   368
            TInt aServiceId, 
williamr@2
   369
			TUid aInterfaceUid, 
williamr@4
   370
			const RExtendedInterfacesArray& aExtendedInterfaces,
williamr@2
   371
			const TEComResolverParams& aResolutionParameters, 
williamr@2
   372
			TUid aResolverUid,
williamr@4
   373
			RImplInfoPtrArray& aImplInfoArray,
williamr@4
   374
			TBool aCapabilityCheck = ETrue);
williamr@2
   375
			
williamr@2
   376
	TAny* ResolveAndCreateImplL(
williamr@2
   377
            TUid aImplementationUid, 
williamr@4
   378
			TUid& aInstanceKey, 
williamr@2
   379
			TAny* aCreationParameters, 
williamr@2
   380
            TBool aCreationParamsFlag);
williamr@2
   381
                                     
williamr@2
   382
	TAny* ResolveAndCreateImplL(
williamr@2
   383
            TUid aInterfaceUid, 
williamr@2
   384
			const TEComResolverParams& aResolutionParameters, 
williamr@4
   385
			TUid& aInstanceKey, 
williamr@2
   386
			TAny* aCreationParameters, 
williamr@2
   387
            TBool aCreationParamsFlag);
williamr@2
   388
                                     
williamr@2
   389
	TAny* ResolveAndCreateImplL(
williamr@2
   390
            TUid aInterfaceUid, 
williamr@2
   391
			const TEComResolverParams& aResolutionParameters, 
williamr@2
   392
			TUid aResolverUid, 
williamr@4
   393
			TUid& aInstanceKey, 
williamr@4
   394
			TAny* aCreationParameters, 
williamr@4
   395
            TBool aCreationParamsFlag);
williamr@4
   396
	
williamr@4
   397
	TAny* ResolveAndCreateImplL(
williamr@4
   398
            TUid aInterfaceUid, 
williamr@4
   399
            const RExtendedInterfacesArray& aExtendedInterfaces, 
williamr@4
   400
			const TEComResolverParams& aResolutionParameters, 
williamr@4
   401
			TUid& aInstanceKey, 
williamr@2
   402
			TAny* aCreationParameters, 
williamr@2
   403
            TBool aCreationParamsFlag);
williamr@2
   404
                                     
williamr@2
   405
	TAny* ResolveAndCreateImplL(
williamr@4
   406
            TUid aInterfaceUid, 
williamr@4
   407
            const RExtendedInterfacesArray& aExtendedInterfaces, 
williamr@2
   408
			const TEComResolverParams& aResolutionParameters, 
williamr@2
   409
			TUid aResolverUid, 
williamr@4
   410
			TUid& aInstanceKey, 
williamr@2
   411
			TAny* aCreationParameters, 
williamr@2
   412
            TBool aCreationParamsFlag);
williamr@2
   413
williamr@4
   414
	TAny* ResolveAndCreateImplL(
williamr@4
   415
            TInt aServiceId,
williamr@4
   416
			TUid aInterfaceUid,
williamr@4
   417
			const RExtendedInterfacesArray& aExtendedInterfaces, 
williamr@4
   418
			const TEComResolverParams& aResolutionParameters, 
williamr@4
   419
			TUid aResolverUid, 
williamr@4
   420
			TUid& aInstanceKey, 
williamr@4
   421
			TAny* aCreationParameters, 
williamr@4
   422
            TBool aCreationParamsFlag);
williamr@4
   423
	
williamr@4
   424
	void ProcessListExtendedInterfacesL(
williamr@4
   425
            const TUid& aImplementationUid,
williamr@4
   426
			RExtendedInterfacesArray& aIfInfo);   
williamr@4
   427
	
williamr@4
   428
	void PackMatchStrAndExtendedInterfacesL(
williamr@4
   429
            const TEComResolverParams& aResolutionParameters, 
williamr@4
   430
			const RExtendedInterfacesArray& aExtendedInterfaces, 
williamr@4
   431
			RBuf8& aMatchStrExtInfBuf);
williamr@4
   432
                             
williamr@4
   433
                                     
williamr@4
   434
public: // @internalComponent APIs
williamr@4
   435
    	// Internal methods used inside ECOM, not for client use.
williamr@4
   436
williamr@4
   437
    // This API is for internal testing purposes.
williamr@2
   438
	IMPORT_C static void SetGetParametersL(const TIpcArgs &aArgs);
williamr@4
   439
			
williamr@4
   440
            									
williamr@2
   441
private:
williamr@2
   442
    /** Not used */
williamr@2
   443
	TInt iReserved1;
williamr@2
   444
williamr@4
   445
	/** not used */
williamr@4
   446
	TInt iReserved3;
williamr@2
   447
    /** not used */
williamr@2
   448
	TInt iReserved2;
williamr@2
   449
	};
williamr@2
   450
williamr@2
   451
#endif	// __ECOM_H__