REComSession Class Reference

class REComSession : public RSessionBase

The REComSession singleton class provides an API to identify (resolution), instantiate, and destroy interface class implementations requested by ECOM clients. It manages the session connection to the ECOM Server itself so that typically only one connection is made to the ECOM Server per thread. It provides an un-initialise function where it releases memory and handles of unused plug-ins, see the FinalClose() function. It also ensures that all necessary clean-up is performed in the event of a Leave by any of the ListImplementationsL() or CreateImplementationL() methods.

Note: Although a public default constructor is provided in this class it is strongly recommended this object is never created by users of this API on the stack or heap by value. To access the non-static methods of this API use the static OpenL() method to obtain a pointer or a reference to the single reference counted session in use. Close() must be called when finished with.

Special care must be taken when using aInstanceKey. It is a 32-bit instance key that is returned from a call to one of the CreateImplementationL() methods. This instance key must only be used with DestroyedImplementation() to identify the implementation instance for destruction, or GetImplementationUidL() to retrieve the Implementation Uid of the instance it refers to. No meaning must be attached to this instance key by ECOM clients and it must not be used for any other purpose.

REComSession::FinalClose()

Inherits from

Public Member Functions
REComSession()
IMPORT_C voidCancelNotifyOnChange(TRequestStatus &)
IMPORT_C voidClose()
IMPORT_C TAny *CreateImplementationL(TUid, TUid &)
IMPORT_C TAny *CreateImplementationL(TUid, TInt32)
IMPORT_C TAny *CreateImplementationL(TUid, TUid &, TAny *)
IMPORT_C TAny *CreateImplementationL(TUid, TInt32, TAny *)
IMPORT_C TAny *CreateImplementationL(TUid, TUid &, const TEComResolverParams &)
IMPORT_C TAny *CreateImplementationL(TUid, TInt32, const TEComResolverParams &)
IMPORT_C TAny *CreateImplementationL(TUid, TUid &, TAny *, const TEComResolverParams &)
IMPORT_C TAny *CreateImplementationL(TUid, TInt32, TAny *, const TEComResolverParams &)
IMPORT_C TAny *CreateImplementationL(TUid, TUid &, const TEComResolverParams &, TUid)
IMPORT_C TAny *CreateImplementationL(TUid, TInt32, const TEComResolverParams &, TUid)
IMPORT_C TAny *CreateImplementationL(TUid, TUid &, TAny *, const TEComResolverParams &, TUid)
IMPORT_C TAny *CreateImplementationL(TUid, TInt32, TAny *, const TEComResolverParams &, TUid)
IMPORT_C TAny *CreateImplementationL(TUid, const RExtendedInterfacesArray &, TUid &, const TEComResolverParams &, TAny *)
IMPORT_C TAny *CreateImplementationL(TUid, const RExtendedInterfacesArray &, TInt32, const TEComResolverParams &, TAny *)
IMPORT_C TAny *CreateImplementationL(TUid, const RExtendedInterfacesArray &, TUid &, const TEComResolverParams &, TUid, TAny *)
IMPORT_C TAny *CreateImplementationL(TUid, const RExtendedInterfacesArray &, TInt32, const TEComResolverParams &, TUid, TAny *)
IMPORT_C voidDestroyedImplementation(TUid)
IMPORT_C voidFinalClose()
IMPORT_C TAny *GetExtendedInterfaceL(const TUid &, const TUid &)
IMPORT_C TUidGetImplementationUidL(TUid)
IMPORT_C voidListExtendedInterfacesL(const TUid &, RExtendedInterfacesArray &)
IMPORT_C voidListImplementationsL(TUid, RImplInfoPtrArray &)
IMPORT_C voidListImplementationsL(TUid, const TEComResolverParams &, RImplInfoPtrArray &)
IMPORT_C voidListImplementationsL(TUid, const TEComResolverParams &, TUid, RImplInfoPtrArray &)
IMPORT_C voidListImplementationsL(TUid, RImplInfoPtrArray &, TBool)
IMPORT_C voidListImplementationsL(TUid, const TEComResolverParams &, RImplInfoPtrArray &, TBool)
IMPORT_C voidListImplementationsL(TUid, const TEComResolverParams &, TUid, RImplInfoPtrArray &, TBool)
IMPORT_C voidListImplementationsL(TUid, RExtendedInterfacesArray &, RImplInfoPtrArray &)
IMPORT_C voidListImplementationsL(TUid, RExtendedInterfacesArray &, const TEComResolverParams &, RImplInfoPtrArray &)
IMPORT_C voidListImplementationsL(TUid, RExtendedInterfacesArray &, const TEComResolverParams &, TUid, RImplInfoPtrArray &)
IMPORT_C voidManuallyReleaseExtendedInterfaceL(const TUid &, const TUid &)
IMPORT_C voidNotifyOnChange(TRequestStatus &)
IMPORT_C REComSession &OpenL()
IMPORT_C voidSetGetParametersL(const TIpcArgs &)
Private Member Functions
voidConstructL()
voidListImplementationsL(TInt, TUid, const RExtendedInterfacesArray &, const TEComResolverParams &, TUid, RImplInfoPtrArray &, TBool)
REComSession &OpenLC()
voidPackMatchStrAndExtendedInterfacesL(const TEComResolverParams &, const RExtendedInterfacesArray &, RBuf8 &)
voidProcessListExtendedInterfacesL(const TUid &, RExtendedInterfacesArray &)
voidReallyClose()
TAny *ResolveAndCreateImplL(TUid, TUid &, TAny *, TBool)
TAny *ResolveAndCreateImplL(TUid, const TEComResolverParams &, TUid &, TAny *, TBool)
TAny *ResolveAndCreateImplL(TUid, const TEComResolverParams &, TUid, TUid &, TAny *, TBool)
TAny *ResolveAndCreateImplL(TUid, const RExtendedInterfacesArray &, const TEComResolverParams &, TUid &, TAny *, TBool)
TAny *ResolveAndCreateImplL(TUid, const RExtendedInterfacesArray &, const TEComResolverParams &, TUid, TUid &, TAny *, TBool)
TAny *ResolveAndCreateImplL(TInt, TUid, const RExtendedInterfacesArray &, const TEComResolverParams &, TUid, TUid &, TAny *, TBool)
Inherited Functions
RHandleBase::Attributes()const
RHandleBase::BTraceId()const
RHandleBase::DoExtendedClose()
RHandleBase::Duplicate(const RThread &,TOwnerType)
RHandleBase::FullName()const
RHandleBase::FullName(TDes &)const
RHandleBase::Handle()const
RHandleBase::HandleInfo(THandleInfo *)
RHandleBase::Name()const
RHandleBase::NotifyDestruction(TRequestStatus &)
RHandleBase::Open(const TFindHandleBase &,TOwnerType)
RHandleBase::OpenByName(const TDesC &,TOwnerType,TInt)
RHandleBase::RHandleBase()
RHandleBase::RHandleBase(TInt)
RHandleBase::SetHandle(TInt)
RHandleBase::SetHandleNC(TInt)
RSessionBase::CreateSession(RServer2,const TVersion &)
RSessionBase::CreateSession(RServer2,const TVersion &,TInt)
RSessionBase::CreateSession(RServer2,const TVersion &,TInt,TIpcSessionType,const TSecurityPolicy *,TRequestStatus *)
RSessionBase::CreateSession(const TDesC &,const TVersion &)
RSessionBase::CreateSession(const TDesC &,const TVersion &,TInt)
RSessionBase::CreateSession(const TDesC &,const TVersion &,TInt,TIpcSessionType,const TSecurityPolicy *,TRequestStatus *)
RSessionBase::CreateSession(const TDesC &,const TVersion &,TInt,TRequestStatus *)
RSessionBase::Open(RMessagePtr2,TInt,TOwnerType)
RSessionBase::Open(RMessagePtr2,TInt,const TSecurityPolicy &,TOwnerType)
RSessionBase::Open(TInt,TOwnerType)
RSessionBase::Open(TInt,const TSecurityPolicy &,TOwnerType)
RSessionBase::Send(TInt)const
RSessionBase::Send(TInt,const TIpcArgs &)const
RSessionBase::SendReceive(TInt)const
RSessionBase::SendReceive(TInt,TRequestStatus &)const
RSessionBase::SendReceive(TInt,const TIpcArgs &)const
RSessionBase::SendReceive(TInt,const TIpcArgs &,TRequestStatus &)const
RSessionBase::SetReturnedHandle(TInt)
RSessionBase::SetReturnedHandle(TInt,RHandleBase &)
RSessionBase::SetReturnedHandle(TInt,const TSecurityPolicy &)
RSessionBase::ShareAuto()
RSessionBase::ShareProtected()
Inherited Enumerations
RHandleBase:TAttributes
RSessionBase:TAttachMode
Private Attributes
TInt iReserved1
TInt iReserved2
TInt iReserved3
Inherited Attributes
RHandleBase::iHandle

Constructor & Destructor Documentation

REComSession()

IMPORT_CREComSession()

Member Functions Documentation

CancelNotifyOnChange(TRequestStatus &)

IMPORT_C voidCancelNotifyOnChange(TRequestStatus &aStatus)
De-registers for notification messages.
Pre-condition
REComSession must have been opened.
Post-condition
The caller's registeration for reciept of notifications of registry data changes has been cancelled.

Parameters

TRequestStatus & aStatusThe request status object originally passed to NotifyOnChange() for notification signalling.

Close()

IMPORT_C voidClose()

Closes the open handle on the ECOM framework. Reference count is decremented and the ECOM client/server session is closed.

Pre-condition
REComSession must have been opened.
Post-condition
REComSession reference count is decremented, server session closed

ConstructL()

voidConstructL()[private]

Initialisation phase of two phase construction.

leave
One of the system-wide error codes
Post-condition
REComSession is fully initialised.

CreateImplementationL(TUid, TUid &)

IMPORT_C TAny *CreateImplementationL(TUidaImplementationUid,
TUid &aInstanceKey
)[static]
Instantiates an interface implementation to satisfy the specified interface.
leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrArgument
leave
KErrPermissionDenied. This leave error can happen under the following conditions: 1. There is a capability mismatch between the process creating the implementation and the DLL containing the implementation 2. The plugin DLL installed on the media card was not properly installed, either the system hash value of this plugin is missing or it is inconsistent with that calculated for the plugin DLL at load time.
Post-condition
The requested interface implementation is identified, and the instantiation method pointer is returned.

Parameters

TUid aImplementationUidA UID specifying the required interface implementation.
TUid & aInstanceKeyA 32-bit instance key that is returned by the ECom framework. This instance key should be passed as an argument to the DestroyedImplementation() method to identify the implementation for destruction. No meaning should be attached to this instance key by ECOM clients and it should not be used for any other purpose.

CreateImplementationL(TUid, TInt32)

IMPORT_C TAny *CreateImplementationL(TUidaImplementationUid,
TInt32aKeyOffset
)[static]
Instantiates an interface implementation to satisfy the specified interface.
leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrArgument
leave
KErrPermissionDenied. This leave error can happen under the following conditions: 1. There is a capability mismatch between the process creating the implementation and the DLL containing the implementation 2. The plugin DLL installed on the media card was not properly installed, either the system hash value of this plugin is missing or it is inconsistent with that calculated for the plugin DLL at load time.
Post-condition
The requested interface implementation is identified, and the instantiation method pointer is returned.

Parameters

TUid aImplementationUidA UID specifying the required interface implementation.
TInt32 aKeyOffsetAn offset to the 32 bit identifer returned by the ECom framework to identify this instance to the framework.

CreateImplementationL(TUid, TUid &, TAny *)

IMPORT_C TAny *CreateImplementationL(TUidaImplementationUid,
TUid &aInstanceKey,
TAny *aConstructionParameters
)[static]
Instantiates an interface implementation to satisfy the specified interface.
leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrArgument
leave
KErrPermissionDenied. This leave error can happen under the following conditions: 1. There is a capability mismatch between the process creating the implementation and the DLL containing the implementation 2. The plugin DLL installed on the media card was not properly installed, either the system hash value of this plugin is missing or it is inconsistent with that calculated for the plugin DLL at load time.
Post-condition
The requested interface implementation is identified, and the instantiation method pointer is returned.

Parameters

TUid aImplementationUidA UID specifying the required interface implementation.
TUid & aInstanceKeyA 32-bit instance key that is returned by the ECom framework. This instance key should be passed as an argument to the DestroyedImplementation() method to identify the implementation for destruction. No meaning should be attached to this instance key by ECOM clients and it should not be used for any other purpose.
TAny * aConstructionParametersThe parameter structure to pass to the object creation method.

CreateImplementationL(TUid, TInt32, TAny *)

IMPORT_C TAny *CreateImplementationL(TUidaImplementationUid,
TInt32aKeyOffset,
TAny *aConstructionParameters
)[static]
Instantiates an interface implementation to satisfy the specified interface.
leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrArgument
leave
KErrPermissionDenied. This leave error can happen under the following conditions: 1. There is a capability mismatch between the process creating the implementation and the DLL containing the implementation 2. The plugin DLL installed on the media card was not properly installed, either the system hash value of this plugin is missing or it is inconsistent with that calculated for the plugin DLL at load time.
Post-condition
The requested interface implementation is identified, and the instantiation method pointer is returned.

Parameters

TUid aImplementationUidA UID specifying the required interface implementation.
TInt32 aKeyOffsetAn offset to the 32 bit identifer returned by the ECom framework to identify this instance to the framework.
TAny * aConstructionParametersThe parameter structure to pass to the object creation method.

CreateImplementationL(TUid, TUid &, const TEComResolverParams &)

IMPORT_C TAny *CreateImplementationL(TUidaInterfaceUid,
TUid &aInstanceKey,
const TEComResolverParams &aResolutionParameters
)[static]

Instantiates an interface implementation to satisfy the specified interface.

leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrArgument
leave
KErrPermissionDenied. This leave error can happen under the following conditions: 1. There is a capability mismatch between the process creating the implementation and the DLL containing the implementation 2. The plugin DLL installed on the media card was not properly installed, either the system hash value of this plugin is missing or it is inconsistent with that calculated for the plugin DLL at load time.
Post-condition
The requested interface implementation is identified, and the instantiation method pointer is returned.
TEComResolverParams

Parameters

TUid aInterfaceUidA UID specifying the required interface.
TUid & aInstanceKeyA 32-bit instance key that is returned by the ECom framework. This instance key should be passed as an argument to the DestroyedImplementation() method to identify the implementation for destruction. No meaning should be attached to this instance key by ECOM clients and it should not be used for any other purpose.
const TEComResolverParams & aResolutionParametersSpecifies any additional implementation characteristics to be fulfilled, maybe empty.

CreateImplementationL(TUid, TInt32, const TEComResolverParams &)

IMPORT_C TAny *CreateImplementationL(TUidaInterfaceUid,
TInt32aKeyOffset,
const TEComResolverParams &aResolutionParameters
)[static]

Instantiates an interface implementation to satisfy the specified interface.

leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrArgument
leave
KErrPermissionDenied. This leave error can happen under the following conditions: 1. There is a capability mismatch between the process creating the implementation and the DLL containing the implementation 2. The plugin DLL installed on the media card was not properly installed, either the system hash value of this plugin is missing or it is inconsistent with that calculated for the plugin DLL at load time.
Post-condition
The requested interface implementation is identified, and the instantiation method pointer is returned.
TEComResolverParams

Parameters

TUid aInterfaceUidA UID specifying the required interface.
TInt32 aKeyOffsetAn offset to the 32 bit identifer returned by the ECom framework to identify this instance to the framework.
const TEComResolverParams & aResolutionParametersSpecifies any additional implementation characteristics to be fulfilled, maybe empty.

CreateImplementationL(TUid, TUid &, TAny *, const TEComResolverParams &)

IMPORT_C TAny *CreateImplementationL(TUidaInterfaceUid,
TUid &aInstanceKey,
TAny *aConstructionParameters,
const TEComResolverParams &aResolutionParameters
)[static]

Instantiates an interface implementation to satisfy the specified interface.

leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrArgument
leave
KErrPermissionDenied. This leave error can happen under the following conditions: 1. There is a capability mismatch between the process creating the implementation and the DLL containing the implementation 2. The plugin DLL installed on the media card was not properly installed, either the system hash value of this plugin is missing or it is inconsistent with that calculated for the plugin DLL at load time.
Post-condition
The requested interface implementation is identified, and the instantiation method pointer is returned.
TEComResolverParams

Parameters

TUid aInterfaceUidA UID specifying the required interface.
TUid & aInstanceKeyA 32-bit instance key that is returned by the ECom framework. This instance key should be passed as an argument to the DestroyedImplementation() method to identify the implementation for destruction. No meaning should be attached to this instance key by ECOM clients and it should not be used for any other purpose.
TAny * aConstructionParametersThe parameter structure to pass to the object creation method.
const TEComResolverParams & aResolutionParametersSpecifies any additional implementation characteristics to be fulfilled, maybe empty. return TAny* A pointer to the instantiated interface implementation.

CreateImplementationL(TUid, TInt32, TAny *, const TEComResolverParams &)

IMPORT_C TAny *CreateImplementationL(TUidaInterfaceUid,
TInt32aKeyOffset,
TAny *aConstructionParameters,
const TEComResolverParams &aResolutionParameters
)[static]

Instantiates an interface implementation to satisfy the specified interface.

leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrArgument
leave
KErrPermissionDenied. This leave error can happen under the following conditions: 1. There is a capability mismatch between the process creating the implementation and the DLL containing the implementation 2. The plugin DLL installed on the media card was not properly installed, either the system hash value of this plugin is missing or it is inconsistent with that calculated for the plugin DLL at load time.
Post-condition
The requested interface implementation is identified, and the instantiation method pointer is returned.
TEComResolverParams

Parameters

TUid aInterfaceUidA UID specifying the required interface.
TInt32 aKeyOffsetAn offset to the 32 bit identifer returned by the ECom framework to identify this instance to the framework.
TAny * aConstructionParametersThe parameter structure to pass to the object creation method.
const TEComResolverParams & aResolutionParametersSpecifies any additional implementation characteristics to be fulfilled, maybe empty.

CreateImplementationL(TUid, TUid &, const TEComResolverParams &, TUid)

IMPORT_C TAny *CreateImplementationL(TUidaInterfaceUid,
TUid &aInstanceKey,
const TEComResolverParams &aResolutionParameters,
TUidaResolverUid
)[static]

Instantiates an interface implementation to satisfy the specified interface.

leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrArgument
leave
KErrPermissionDenied. This leave error can happen under the following conditions: 1. There is a capability mismatch between the process creating the implementation and the DLL containing the implementation 2. The plugin DLL installed on the media card was not properly installed, either the system hash value of this plugin is missing or it is inconsistent with that calculated for the plugin DLL at load time.
Post-condition
The requested interface implementation is identified, and the instantiation method pointer is returned.
TEComResolverParams

Parameters

TUid aInterfaceUidA UID specifying the required interface.
TUid & aInstanceKeyA 32-bit instance key that is returned by the ECom framework. This instance key should be passed as an argument to the DestroyedImplementation() method to identify the implementation for destruction. No meaning should be attached to this instance key by ECOM clients and it should not be used for any other purpose.
const TEComResolverParams & aResolutionParametersSpecifies any additional implementation characteristics to be fulfilled, maybe empty.
TUid aResolverUidThe Uid of a CResolver with client defined behaviour.

CreateImplementationL(TUid, TInt32, const TEComResolverParams &, TUid)

IMPORT_C TAny *CreateImplementationL(TUidaInterfaceUid,
TInt32aKeyOffset,
const TEComResolverParams &aResolutionParameters,
TUidaResolverUid
)[static]

Instantiates an interface implementation to satisfy the specified interface.

leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrArgument
leave
KErrPermissionDenied. This leave error can happen under the following conditions: 1. There is a capability mismatch between the process creating the implementation and the DLL containing the implementation 2. The plugin DLL installed on the media card was not properly installed, either the system hash value of this plugin is missing or it is inconsistent with that calculated for the plugin DLL at load time.
Post-condition
The requested interface implementation is identified, and the instantiation method pointer is returned.
TEComResolverParams

Parameters

TUid aInterfaceUidA UID specifying the required interface.
TInt32 aKeyOffsetAn offset to the 32 bit identifer returned by the ECom framework to identify this instance to the framework.
const TEComResolverParams & aResolutionParametersSpecifies any additional implementation characteristics to be fulfilled, maybe empty.
TUid aResolverUidThe Uid of a CResolver with client defined behaviour.

CreateImplementationL(TUid, TUid &, TAny *, const TEComResolverParams &, TUid)

IMPORT_C TAny *CreateImplementationL(TUidaInterfaceUid,
TUid &aInstanceKey,
TAny *aConstructionParameters,
const TEComResolverParams &aResolutionParameters,
TUidaResolverUid
)[static]

Instantiates an interface implementation to satisfy the specified interface.

leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrArgument
leave
KErrPermissionDenied. This leave error can happen under the following conditions: 1. There is a capability mismatch between the process creating the implementation and the DLL containing the implementation 2. The plugin DLL installed on the media card was not properly installed, either the system hash value of this plugin is missing or it is inconsistent with that calculated for the plugin DLL at load time.
Post-condition
The requested interface implementation is identified, and the instantiation method pointer is returned.
TEComResolverParams

Parameters

TUid aInterfaceUidA UID specifying the required interface.
TUid & aInstanceKeyA 32-bit instance key that is returned by the ECom framework. This instance key should be passed as an argument to the DestroyedImplementation() method to identify the implementation for destruction. No meaning should be attached to this instance key by ECOM clients and it should not be used for any other purpose.
TAny * aConstructionParametersThe parameter structure to pass to the object creation method.
const TEComResolverParams & aResolutionParametersSpecifies any additional implementation characteristics to be fulfilled, maybe empty.
TUid aResolverUidThe Uid of a CResolver with client defined behaviour.

CreateImplementationL(TUid, TInt32, TAny *, const TEComResolverParams &, TUid)

IMPORT_C TAny *CreateImplementationL(TUidaInterfaceUid,
TInt32aKeyOffset,
TAny *aConstructionParameters,
const TEComResolverParams &aResolutionParameters,
TUidaResolverUid
)[static]

Instantiates an interface implementation to satisfy the specified interface.

leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrArgument
leave
KErrPermissionDenied. This leave error can happen under the following conditions: 1. There is a capability mismatch between the process creating the implementation and the DLL containing the implementation 2. The plugin DLL installed on the media card was not properly installed, either the system hash value of this plugin is missing or it is inconsistent with that calculated for the plugin DLL at load time.
Post-condition
The requested interface implementation is identified, and the instantiation method pointer is returned.
TEComResolverParams

Parameters

TUid aInterfaceUidA UID specifying the required interface.
TInt32 aKeyOffsetAn offset to the 32 bit identifer returned by the ECom framework to identify this instance to the framework.
TAny * aConstructionParametersThe parameter structure to pass to the object creation method.
const TEComResolverParams & aResolutionParametersSpecifies any additional implementation characteristics to be fulfilled, maybe empty.
TUid aResolverUidThe Uid of a CResolver with client defined behaviour.

CreateImplementationL(TUid, const RExtendedInterfacesArray &, TUid &, const TEComResolverParams &, TAny *)

IMPORT_C TAny *CreateImplementationL(TUidaInterfaceUid,
const RExtendedInterfacesArray &aExtendedInterfaces,
TUid &aInstanceKey,
const TEComResolverParams &aResolutionParameters,
TAny *aConstructionParameters = NULL
)[static]

Instantiates an interface implementation to satisfy the specified interface.

leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrArgument
leave
KErrPermissionDenied. This leave error can happen under the following conditions: 1. There is a capability mismatch between the process creating the implementation and the DLL containing the implementation 2. The plugin DLL installed on the media card was not properly installed, either the system hash value of this plugin is missing or it is inconsistent with that calculated for the plugin DLL at load time.
leave
Or any of the System Wide error codes
Post-condition
The requested interface implementation is identified, and the instantiation method pointer is returned.
TEComResolverParams

Parameters

TUid aInterfaceUidA UID specifying the required interface implementation.
const RExtendedInterfacesArray & aExtendedInterfacesIdentifies a set of zero or more extended interfaces to match. Must match all extended interfaces for a match to occur.
TUid & aInstanceKeyA 32-bit instance key that is returned by the ECom framework. This instance key should be passed as an argument to the DestroyedImplementation() method to identify the implementation for destruction. No meaning should be attached to this instance key by ECOM clients and it should not be used for any other purpose.
const TEComResolverParams & aResolutionParametersSpecifies any additional implementation characteristics to be fulfilled, maybe empty.
TAny * aConstructionParameters = NULLThe parameter structure to pass to the object creation method. Default value is NULL.

CreateImplementationL(TUid, const RExtendedInterfacesArray &, TInt32, const TEComResolverParams &, TAny *)

IMPORT_C TAny *CreateImplementationL(TUidaInterfaceUid,
const RExtendedInterfacesArray &aExtendedInterfaces,
TInt32aKeyOffset,
const TEComResolverParams &aResolutionParameters,
TAny *aConstructionParameters = NULL
)[static]

Instantiates an interface implementation to satisfy the specified interface.

leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrArgument
leave
KErrPermissionDenied. This leave error can happen under the following conditions: 1. There is a capability mismatch between the process creating the implementation and the DLL containing the implementation 2. The plugin DLL installed on the media card was not properly installed, either the system hash value of this plugin is missing or it is inconsistent with that calculated for the plugin DLL at load time.
leave
Or any of the System Wide error codes
Post-condition
The requested interface implementation is identified, and the instantiation method pointer is returned.
TEComResolverParams

Parameters

TUid aInterfaceUidA UID specifying the required interface implementation.
const RExtendedInterfacesArray & aExtendedInterfacesIdentifies a set of zero or more extended interfaces to match. Must match all extended interfaces for a match to occur.
TInt32 aKeyOffsetAn offset to the 32 bit identifer returned by the ECom framework to identify this instance to the framework.
const TEComResolverParams & aResolutionParametersSpecifies any additional implementation characteristics to be fulfilled, maybe empty.
TAny * aConstructionParameters = NULLThe parameter structure to pass to the object creation method. Default value is NULL.

CreateImplementationL(TUid, const RExtendedInterfacesArray &, TUid &, const TEComResolverParams &, TUid, TAny *)

IMPORT_C TAny *CreateImplementationL(TUidaInterfaceUid,
const RExtendedInterfacesArray &aExtendedInterfaces,
TUid &aInstanceKey,
const TEComResolverParams &aResolutionParameters,
TUidaResolverUid,
TAny *aConstructionParameters = NULL
)[static]

Instantiates an interface implementation to satisfy the specified interface.

leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrArgument
leave
KErrPermissionDenied. This leave error can happen under the following conditions: 1. There is a capability mismatch between the process creating the implementation and the DLL containing the implementation 2. The plugin DLL installed on the media card was not properly installed, either the system hash value of this plugin is missing or it is inconsistent with that calculated for the plugin DLL at load time.
leave
Or any of the System Wide error codes
Post-condition
The requested interface implementation is identified, and the instantiation method pointer is returned.
TEComResolverParams

Parameters

TUid aInterfaceUidA UID specifying the required interface implementation.
const RExtendedInterfacesArray & aExtendedInterfacesIdentifies a set of zero or more extended interfaces to match. Must match all extended interfaces for a match to occur.
TUid & aInstanceKeyA 32-bit instance key that is returned by the ECom framework. This instance key should be passed as an argument to the DestroyedImplementation() method to identify the implementation for destruction. No meaning should be attached to this instance key by ECOM clients and it should not be used for any other purpose.
const TEComResolverParams & aResolutionParametersSpecifies any additional implementation characteristics to be fulfilled, maybe empty.
TUid aResolverUidThe Uid of a CResolver with client defined behaviour.
TAny * aConstructionParameters = NULLThe parameter structure to pass to the object creation method. Default value is NULL.

CreateImplementationL(TUid, const RExtendedInterfacesArray &, TInt32, const TEComResolverParams &, TUid, TAny *)

IMPORT_C TAny *CreateImplementationL(TUidaInterfaceUid,
const RExtendedInterfacesArray &aExtendedInterfaces,
TInt32aKeyOffset,
const TEComResolverParams &aResolutionParameters,
TUidaResolverUid,
TAny *aConstructionParameters = NULL
)[static]

Instantiates an interface implementation to satisfy the specified interface.

leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrArgument
leave
KErrPermissionDenied. This leave error can happen under the following conditions: 1. There is a capability mismatch between the process creating the implementation and the DLL containing the implementation 2. The plugin DLL installed on the media card was not properly installed, either the system hash value of this plugin is missing or it is inconsistent with that calculated for the plugin DLL at load time.
leave
Or any of the System Wide error codes
Post-condition
The requested interface implementation is identified, and the instantiation method pointer is returned.
TEComResolverParams

Parameters

TUid aInterfaceUidA UID specifying the required interface implementation.
const RExtendedInterfacesArray & aExtendedInterfacesIdentifies a set of zero or more extended interfaces to match. Must match all extended interfaces for a match to occur.
TInt32 aKeyOffsetAn offset to the 32 bit identifer returned by the ECom framework to identify this instance to the framework.
const TEComResolverParams & aResolutionParametersSpecifies any additional implementation characteristics to be fulfilled, maybe empty.
TUid aResolverUidThe Uid of a CResolver with client defined behaviour.
TAny * aConstructionParameters = NULLThe parameter structure to pass to the object creation method. Default value is NULL.

DestroyedImplementation(TUid)

IMPORT_C voidDestroyedImplementation(TUidaInstanceKey)[static]
Signals the destruction of an interface implementation to ECOM. LoadManager is responsible for destroying the implementation
Post-condition
The destruction of the Interface Implementation referred to by aInstanceKey

Parameters

TUid aInstanceKeyA 32-bit instance key that is returned from a call to one of the CreateImplementationL() methods. This instance key identifies the implementation for destruction. No meaning should be attached to this instance key by ECOM clients and it should not be used for any other purpose.

FinalClose()

IMPORT_C voidFinalClose()[static]

This method is used in processes that have utilised the ECOM framework, it does nothing if the ECOM framework has not been initialised. Its main purpose is to release memory and close handles held on unused plug-in implementations and their associated DLLs. If is found (through reference counting) that the ECOM framework is no longer in use in the calling thread the session to the ECOM's server is also closed.

This method is called by direct users of the ECOM framework wherever possible (e.g. library, server or test code). It is safe to call it at any time outside of plug-in code as the user's scenario dictates. This maybe during a test case or just before process termination.

Note: It must never be called from within a plug-in implementations class destructor, especially following a DestroyImplementation() as there is a risk that the plug-in's supporting DLL may immediately be unloaded by the Kernel due to the closure of RLibrary handles. It can result in a KERN-EXEC if the destructor call stack is still inside the DLL that is unloaded.

Note: Processes that utilise the ECOM framework that do not use this call are at risk of a UHEAP_MARKEND generated panic in debug builds.

GetExtendedInterfaceL(const TUid &, const TUid &)

IMPORT_C TAny *GetExtendedInterfaceL(const TUid &aInstanceKey,
const TUid &aExtendedInterfaceUid
)[static]
Returns the requested interface, NULL if it does not exist
leave
KErrNotFound When the supplied 32-bit implementation instance key is not recognised by ECom.
leave
KErrArgument When a null implementation instance key is passed as an argument to ECom.
leave
Any of the other System wide errors

Parameters

const TUid & aInstanceKeyA 32-bit implementation instance key that is returned from a call to one of the CreateImplementationL() methods. ECOM uses this implementation instance key when it is passed as an argument to the DestroyedImplementation() method to identify an implementation for destruction. No meaning should be attached to this implementation instance key by ECOM clients and it should not be used for any other purpose.
const TUid & aExtendedInterfaceUidIdentifies an interface to fetch from the plug-in instance.

GetImplementationUidL(TUid)

IMPORT_C TUidGetImplementationUidL(TUidaInstanceKey)[static]
Gets the corresponding implementation uid for an instance key. This is typically used after a call to one of the CreateImplementationL() methods that returns the aInstanceKey value as an output arg or by an offset (aKeyOffset).
leave
KErrNotFound When the supplied 32-bit implementation instance key is not recognised by ECom.
leave
KErrArgument When a null implementation instance key is passed as an argument to ECom.
leave
Any of the other System wide errors
Post-condition
REComSession has not changed

Parameters

TUid aInstanceKeyA 32-bit implementation instance key that is returned from a call to one of the CreateImplementationL() methods. ECOM uses this implementation instance key when it is passed as an argument to the DestroyedImplementation() method to identify an implementation for destruction. No meaning should be attached to this implementation instance key by ECOM clients and it should not be used for any other purpose.

ListExtendedInterfacesL(const TUid &, RExtendedInterfacesArray &)

IMPORT_C voidListExtendedInterfacesL(const TUid &aImplementationUid,
RExtendedInterfacesArray &aIfInfo
)[static]
Retrieves a list of all the extended interfaces for the provided implementation.
leave
KErrNoMemory
leave
One of the system-wide error codes

Parameters

const TUid & aImplementationUidImplementation UID to fetch the extended interfaces for.
RExtendedInterfacesArray & aIfInfoReturn value consisting of an array containing the extended interfaces.

ListImplementationsL(TUid, RImplInfoPtrArray &)

IMPORT_C voidListImplementationsL(TUidaInterfaceUid,
RImplInfoPtrArray &aImplInfoArray
)[static]
Retrieves a list of all the implementations which satisfy the specified interface. The aImplInfoArray on exit contains the plug-in implementations who's plug-in DLLs have sufficient capabilities to be loaded by the calling client process.
leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrArgument
Post-condition
REComSession has not changed, and aImplInfoArray contains the list of Implementation information for the interface.

Parameters

TUid aInterfaceUidA UID specifying the required interface.
RImplInfoPtrArray & aImplInfoArrayA reference to a client owned array which will be filled with interface implementation data. The array will first be cleared and all items destroyed before adding new data.

ListImplementationsL(TUid, const TEComResolverParams &, RImplInfoPtrArray &)

IMPORT_C voidListImplementationsL(TUidaInterfaceUid,
const TEComResolverParams &aResolutionParameters,
RImplInfoPtrArray &aImplInfoArray
)[static]

Retrieves a list of all the implementations which satisfy the specified interface with selection restriction to the specified parameters. The aImplInfoArray on exit contains the plug-in implementations who's plug-in DLLs have sufficient capabilities to be loaded by the calling client process.

leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrArgument
Since
7.0
Post-condition
REComSession has not changed, and aImplInfoArray contains the list of Implementation information for the interface.
TEComResolverParams

Parameters

TUid aInterfaceUidA UID specifying the required interface.
const TEComResolverParams & aResolutionParametersSpecifies any additional implementation characteristics to be fulfilled, maybe empty.
RImplInfoPtrArray & aImplInfoArrayA reference to a client owned array which will be filled with interface implementation data. The array will first be cleared and all items destroyed before adding new data.

ListImplementationsL(TUid, const TEComResolverParams &, TUid, RImplInfoPtrArray &)

IMPORT_C voidListImplementationsL(TUidaInterfaceUid,
const TEComResolverParams &aResolutionParameters,
TUidaResolverUid,
RImplInfoPtrArray &aImplInfoArray
)[static]

Retrieves a list of all the implementations which satisfy the specified interface with selection restriction to the specified parameters. The aImplInfoArray on exit contains the plug-in implementations who's plug-in DLLs have sufficient capabilities to be loaded by the calling client process. Overload with a client provided CResolver.

leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrArgument
leave
KErrPermissionDenied
Post-condition
REComSession has not changed, and aImplInfoArray contains the list of Implementation information for the interface.
TEComResolverParams

Parameters

TUid aInterfaceUidA UID specifying the required interface.
const TEComResolverParams & aResolutionParametersSpecifies any additional implementation characteristics to be fulfilled, maybe empty.
TUid aResolverUidThe CResolver UID which identifies the resolver implementation with the required client defined behaviour.
RImplInfoPtrArray & aImplInfoArrayA reference to a client owned array which will be filled with interface implementation data. The array will first be cleared and all items destroyed before adding new data.

ListImplementationsL(TUid, RImplInfoPtrArray &, TBool)

IMPORT_C voidListImplementationsL(TUidaInterfaceUid,
RImplInfoPtrArray &aImplInfoArray,
TBoolaCapabilityCheck
)[static]
Retrieves a list of all the implementations which satisfy the specified interface. This method does not do capability check. The aImplInfoArray on exit contains the plug-in implementations .
leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrArgument
Post-condition
REComSession has not changed, and aImplInfoArray contains the list of Implementation information for the interface.

Parameters

TUid aInterfaceUidA UID specifying the required interface.
RImplInfoPtrArray & aImplInfoArrayA reference to a client owned array which will be filled with interface implementation data. The array will first be cleared and all items destroyed before adding new data.
TBool aCapabilityCheckA boolean value EFalse , if no capability check is required ETrue otherwise.

ListImplementationsL(TUid, const TEComResolverParams &, RImplInfoPtrArray &, TBool)

IMPORT_C voidListImplementationsL(TUidaInterfaceUid,
const TEComResolverParams &aResolutionParameters,
RImplInfoPtrArray &aImplInfoArray,
TBoolaCapabilityCheck
)[static]

Retrieves a list of all the implementations which satisfy the specified interface with selection restriction to the specified parameters.This method does not do capability check. The aImplInfoArray on exit contains the plug-in implementations .

leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrArgument
Since
7.0
Post-condition
REComSession has not changed, and aImplInfoArray contains the list of Implementation information for the interface.
TEComResolverParams

Parameters

TUid aInterfaceUidA UID specifying the required interface.
const TEComResolverParams & aResolutionParametersSpecifies any additional implementation characteristics to be fulfilled, maybe empty.
RImplInfoPtrArray & aImplInfoArrayA reference to a client owned array which will be filled with interface implementation data. The array will first be cleared and all items destroyed before adding new data.
TBool aCapabilityCheckA boolean value EFalse , if no capability check is required ETrue otherwise.

ListImplementationsL(TUid, const TEComResolverParams &, TUid, RImplInfoPtrArray &, TBool)

IMPORT_C voidListImplementationsL(TUidaInterfaceUid,
const TEComResolverParams &aResolutionParameters,
TUidaResolverUid,
RImplInfoPtrArray &aImplInfoArray,
TBoolaCapabilityCheck
)[static]

Retrieves a list of all the implementations which satisfy the specified interface with selection restriction to the specified parameters.This method does not do capability check. The aImplInfoArray on exit contains the plug-in implementations . Overload with a client provided CResolver.

leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrArgument
leave
KErrPermissionDenied
Post-condition
REComSession has not changed, and aImplInfoArray contains the list of Implementation information for the interface.
TEComResolverParams

Parameters

TUid aInterfaceUidA UID specifying the required interface.
const TEComResolverParams & aResolutionParametersSpecifies any additional implementation characteristics to be fulfilled, maybe empty.
TUid aResolverUidThe CResolver UID which identifies the resolver implementation with the required client defined behaviour.
RImplInfoPtrArray & aImplInfoArrayA reference to a client owned array which will be filled with interface implementation data. The array will first be cleared and all items destroyed before adding new data.
TBool aCapabilityCheckA boolean value EFalse , if no capability check is required ETrue otherwise.

ListImplementationsL(TUid, RExtendedInterfacesArray &, RImplInfoPtrArray &)

IMPORT_C voidListImplementationsL(TUidaInterfaceUid,
RExtendedInterfacesArray &aExtendedInterfaces,
RImplInfoPtrArray &aImplInfoArray
)[static]
Retrieves a list of all the implementations which satisfy the specified interface, extended Interfaces. The aImplInfoArray on exit contains the plug-in implementations who's plug-in DLLs have sufficient capabilities to be loaded by the calling client process.
leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrArgument
leave
Or any of the System Wide error codes
Post-condition
REComSession has not changed, and aImplInfoArray contains the list of Implementation information for the interface.

Parameters

TUid aInterfaceUidA UID specifying the required interface.
RExtendedInterfacesArray & aExtendedInterfacesIdentifies a set of zero or many extended interfaces to match. Must match all extended interfaces for a match to occur.
RImplInfoPtrArray & aImplInfoArrayA reference to a client owned array which will be filled with interface implementation data. The array will first be cleared and all items destroyed before adding new data.

ListImplementationsL(TUid, RExtendedInterfacesArray &, const TEComResolverParams &, RImplInfoPtrArray &)

IMPORT_C voidListImplementationsL(TUidaInterfaceUid,
RExtendedInterfacesArray &aExtendedInterfaces,
const TEComResolverParams &aResolutionParameters,
RImplInfoPtrArray &aImplInfoArray
)[static]

Retrieves a list of all the implementations which satisfy the specified interface, extended interfaces, with selection restriction to the specified parameters. The aImplInfoArray on exit contains the plug-in implementations who's plug-in DLLs have sufficient capabilities to be loaded by the calling client process.

leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrArgument
leave
Or any of the System Wide error codes
Post-condition
REComSession has not changed, and aImplInfoArray contains the list of Implementation information for the interface.
TEComResolverParams

Parameters

TUid aInterfaceUidA UID specifying the required interface.
RExtendedInterfacesArray & aExtendedInterfacesIdentifies a set of zero or more extended interfaces to match. Must match all extended interfaces for a match to occur.
const TEComResolverParams & aResolutionParametersSpecifies any additional implementation characteristics to be fulfilled, maybe empty.
RImplInfoPtrArray & aImplInfoArrayA reference to a client owned array which will be filled with interface implementation data. The array will first be cleared and all items destroyed before adding new data.

ListImplementationsL(TUid, RExtendedInterfacesArray &, const TEComResolverParams &, TUid, RImplInfoPtrArray &)

IMPORT_C voidListImplementationsL(TUidaInterfaceUid,
RExtendedInterfacesArray &aExtendedInterfaces,
const TEComResolverParams &aResolutionParameters,
TUidaResolverUid,
RImplInfoPtrArray &aImplInfoArray
)[static]

Retrieves a list of all the implementations which satisfy the specified interface, extended Interfaces, with selection restriction to the specified parameters. The aImplInfoArray on exit contains the plug-in implementations who's plug-in DLLs have sufficient capabilities to be loaded by the calling client process. Overload with a client provided CResolver.

leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrArgument
leave
KErrPermissionDenied
leave
Or any of the System Wide error codes
Post-condition
REComSession has not changed, and aImplInfoArray contains the list of Implementation information for the interface.
TEComResolverParams

Parameters

TUid aInterfaceUidA UID specifying the required interface.
RExtendedInterfacesArray & aExtendedInterfacesIdentifies a set of zero or more extended interfaces to match. Must match all extended interfaces for a match to occur.
const TEComResolverParams & aResolutionParametersSpecifies any additional implementation characteristics to be fulfilled, maybe empty.
TUid aResolverUidThe CResolver UID which identifies the resolver implementation with the required client defined behaviour.
RImplInfoPtrArray & aImplInfoArrayA reference to a client owned array which will be filled with interface implementation data. The array will first be cleared and all items destroyed before adding new data.

ListImplementationsL(TInt, TUid, const RExtendedInterfacesArray &, const TEComResolverParams &, TUid, RImplInfoPtrArray &, TBool)

voidListImplementationsL(TIntaServiceId,
TUidaInterfaceUid,
const RExtendedInterfacesArray &aExtendedInterfaces,
const TEComResolverParams &aResolutionParameters,
TUidaResolverUid,
RImplInfoPtrArray &aImplInfoArray,
TBoolaCapabilityCheck = ETrue
)[private]

Retrieves a list of all the implementations which satisfy the specified interface with selection restriction to the specified parameters. Overload for internal use to ensure consistency between calls. This is the method which actually makes the IPC call.

leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrPermissionDenied
Post-condition
REComSession has not changed, and aImplInfoArray contains the list of Implementation information for the interface.
TEComResolverParams

Parameters

TInt aServiceIdAn integer specifying the ECom service variant to use.
TUid aInterfaceUidA UID specifying the required interface.
const RExtendedInterfacesArray & aExtendedInterfacesIdentifies a set of zero or more extended interfaces to match, Must match all extended interfaces for a match to occur.
const TEComResolverParams & aResolutionParametersSpecifies any additional implementation characteristics to be fulfilled, maybe empty.
TUid aResolverUidThe CResolver UID which identifies the resolver implementation with the required client defined behaviour.
RImplInfoPtrArray & aImplInfoArrayA reference to a client owned array which will be filled with interface implementation data. The array will first be cleared and all items destroyed before adding new data.
TBool aCapabilityCheck = ETrue

ManuallyReleaseExtendedInterfaceL(const TUid &, const TUid &)

IMPORT_C voidManuallyReleaseExtendedInterfaceL(const TUid &aInstanceKey,
const TUid &aExtendedInterfaceUid
)[static]
Releases the extended interface associated with the supplied instance. Does nothing if the interface does not exist. This interface is optional, normally the interfaces are cleaned up automatically. This can be used if it is necessary to clean up an extended interface before the automatic cleanup occurs when the instance is destroyed.
leave
KErrNotFound When the supplied 32-bit implementation instance key is not recognised by ECom.
leave
KErrArgument When a null implementation instance key is passed as an argument to ECom.
leave
Any of the other System wide errors

Parameters

const TUid & aInstanceKeyA 32-bit implementation instance key that is returned from a call to one of the CreateImplementationL() methods. ECOM uses this implementation instance key when it is passed as an argument to the DestroyedImplementation() method to identify an implementation for destruction. No meaning should be attached to this implementation instance key by ECOM clients and it should not be used for any other purpose.
const TUid & aExtendedInterfaceUidIdentifies an extended interface to release.

NotifyOnChange(TRequestStatus &)

IMPORT_C voidNotifyOnChange(TRequestStatus &aStatus)

Registers for notification messages when the underlying ECOM registration data changes. The client must not call this api again until their request is Completed as this could result in a 'stray signal'. This api should be placed first in the RunL of an Active Object otherwise changes could be lost. RunError should be implemented to cater for any Leaves. For example, it could retry after a second if the ECom server is busy rebuilding its indexes. CancelNotifyOnChange should be called to cancel this request and should NOT be part of the RunL.

Pre-condition
REComSession must have been opened.
Post-condition
The caller is registered for receipt of notifications if the server's registry data changes.

Parameters

TRequestStatus & aStatusA request status object to complete for notification signalling.

OpenL()

IMPORT_C REComSession &OpenL()[static]

This method returns a reference to the singleton client/server session object maintained by the ECOM client library, referenced counted. If it does not exist it is initialised and then returned. Clients should store the handle returned by refernce or by pointer. Storage by value is highly discouraged.

It is only necessary to use the Open()/Close() API directly if you need access to the notification methods. Access to the static API does not require these to be used. Please remeber each call to Open() must have an equivalent Close().

leave
KErrNoMemory
leave
One of the system-wide error codes
Post-condition
REComSession is connected and ready to issue ECOM requests.

OpenLC()

REComSession &OpenLC()[private, static]

This method returns a reference to the singleton client/server session object maintained by the ECOM client library, referenced counted. If it does not exist it is initialised and then returned.

leave
KErrNoMemory
leave
One of the system-wide error codes
Post-condition
REComSession is connected and ready to issue ECOM requests.

PackMatchStrAndExtendedInterfacesL(const TEComResolverParams &, const RExtendedInterfacesArray &, RBuf8 &)

voidPackMatchStrAndExtendedInterfacesL(const TEComResolverParams &aResolutionParameters,
const RExtendedInterfacesArray &aExtendedInterfaces,
RBuf8 &aMatchStrExtInfBuf
)[private]

Pack the match string of the resolution parameter and extended interfaces into a buffer for sending to server.

Parameters

const TEComResolverParams & aResolutionParametersSpecifies any additional implementation characteristics to be fulfilled, maybe empty.
const RExtendedInterfacesArray & aExtendedInterfacesIdentifies a set of zero or more extended interfaces to match, Must match all extended interfaces for a match to occur.
RBuf8 & aMatchStrExtInfBufThe return buffer containing the information of match string and extended interfaces.

ProcessListExtendedInterfacesL(const TUid &, RExtendedInterfacesArray &)

voidProcessListExtendedInterfacesL(const TUid &aImplementationUid,
RExtendedInterfacesArray &aIfInfo
)[private]
Process the list extended interface request.
leave
KErrNoMemory
leave
One of the system-wide error codes

Parameters

const TUid & aImplementationUidImplementation UID to fetch the extended interfaces for.
RExtendedInterfacesArray & aIfInfoReturn value consisting of an array containing the extended interfaces.

ReallyClose()

voidReallyClose()[private]
The method will close the ECOM session connection.
Pre-condition
REComSession must have been opened
Post-condition
The session is closed

ResolveAndCreateImplL(TUid, TUid &, TAny *, TBool)

TAny *ResolveAndCreateImplL(TUidaImplementationUid,
TUid &aInstanceKey,
TAny *aCreationParameters,
TBoolaCreationParamsFlag
)[private]

Provides the instantiation method for an interface implementation that satisfies the specified interface.

leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrPermissionDenied
Post-condition
The requested interface implementation is identified, and the instantiation method pointer is returned.

Parameters

TUid aImplementationUidA UID specifying the required interface implementation.
TUid & aInstanceKeyA 32 bit instance key returned by the ECom framework that identifies the returned instance.
TAny * aCreationParametersA pointer to the creation parameter structure passed to the creation method when called.
TBool aCreationParamsFlagA boolean flag to indicate the existence or non-existence of aCreationParameters. Will be ETrue even for if the value of aCreationParameters is NULL.

ResolveAndCreateImplL(TUid, const TEComResolverParams &, TUid &, TAny *, TBool)

TAny *ResolveAndCreateImplL(TUidaInterfaceUid,
const TEComResolverParams &aResolutionParameters,
TUid &aInstanceKey,
TAny *aCreationParameters,
TBoolaCreationParamsFlag
)[private]

Provides the instantiation method for an interface implementation that satisfies the specified interface.

leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrPermissionDenied
Post-condition
The requested interface implementation is identified, and the instantiation method pointer is returned.
TEComResolverParams

Parameters

TUid aInterfaceUidA UID specifying the required interface.
const TEComResolverParams & aResolutionParametersSpecifies any additional implementation characteristics to be fulfilled, maybe empty.
TUid & aInstanceKeyA 32 bit instance key returned by the ECom framework that identifies the returned instance.
TAny * aCreationParametersA pointer to the creation parameter structure passed to the creation method when called.
TBool aCreationParamsFlagA boolean flag to indicate the existence or non-existence of aCreationParameters. Will be ETrue even for if the value of aCreationParameters is NULL.

ResolveAndCreateImplL(TUid, const TEComResolverParams &, TUid, TUid &, TAny *, TBool)

TAny *ResolveAndCreateImplL(TUidaInterfaceUid,
const TEComResolverParams &aResolutionParameters,
TUidaResolverUid,
TUid &aInstanceKey,
TAny *aCreationParameters,
TBoolaCreationParamsFlag
)[private]

Provides the instantiation method for an interface implementation that satisfies the specified interface. Overload with a client provided CResolver.

leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrPermissionDenied
Post-condition
The requested interface implementation is identified, and the instantiation method pointer is returned.
TEComResolverParams

Parameters

TUid aInterfaceUidA UID specifying the required interface.
const TEComResolverParams & aResolutionParametersSpecifies any additional implementation characteristics to be fulfilled, maybe empty.
TUid aResolverUidThe Uid of a CResolver with client defined behaviour.
TUid & aInstanceKeyA 32 bit instance key returned by the ECom framework that identifies the returned instance.
TAny * aCreationParametersA pointer to the creation parameter structure passed to the creation method when called.
TBool aCreationParamsFlagA boolean flag to indicate the existence or non-existence of aCreationParameters. Will be ETrue even for if the value of aCreationParameters is NULL.

ResolveAndCreateImplL(TUid, const RExtendedInterfacesArray &, const TEComResolverParams &, TUid &, TAny *, TBool)

TAny *ResolveAndCreateImplL(TUidaInterfaceUid,
const RExtendedInterfacesArray &aExtendedInterfaces,
const TEComResolverParams &aResolutionParameters,
TUid &aInstanceKey,
TAny *aCreationParameters,
TBoolaCreationParamsFlag
)[private]

Provides the instantiation method for an interface implementation that satisfies the specified interface.

leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrPermissionDenied
Post-condition
The requested interface implementation is identified, and the instantiation method pointer is returned.
TEComResolverParams

Parameters

TUid aInterfaceUidA UID specifying the required interface.
const RExtendedInterfacesArray & aExtendedInterfacesIdentifies a set of zero or more extended interfaces to match. Must match all extended interfaces for a match to occur.
const TEComResolverParams & aResolutionParametersSpecifies any additional implementation characteristics to be fulfilled, maybe empty.
TUid & aInstanceKeyA 32 bit instance key returned by the ECom framework that identifies the returned instance.
TAny * aCreationParametersA pointer to the creation parameter structure passed to the creation method when called.
TBool aCreationParamsFlagA boolean flag to indicate the existence or non-existence of aCreationParameters. Will be ETrue even for if the value of aCreationParameters is NULL.

ResolveAndCreateImplL(TUid, const RExtendedInterfacesArray &, const TEComResolverParams &, TUid, TUid &, TAny *, TBool)

TAny *ResolveAndCreateImplL(TUidaInterfaceUid,
const RExtendedInterfacesArray &aExtendedInterfaces,
const TEComResolverParams &aResolutionParameters,
TUidaResolverUid,
TUid &aInstanceKey,
TAny *aCreationParameters,
TBoolaCreationParamsFlag
)[private]

Provides the instantiation method for an interface implementation that satisfies the specified interface. Overload with a client provided CResolver.

leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrPermissionDenied
Post-condition
The requested interface implementation is identified, and the instantiation method pointer is returned.
TEComResolverParams

Parameters

TUid aInterfaceUidA UID specifying the required interface.
const RExtendedInterfacesArray & aExtendedInterfacesIdentifies a set of zero or more extended interfaces to match. Must match all extended interfaces for a match to occur.
const TEComResolverParams & aResolutionParametersSpecifies any additional implementation characteristics to be fulfilled, maybe empty.
TUid aResolverUidThe Uid of a CResolver with client defined behaviour.
TUid & aInstanceKeyA 32 bit instance key returned by the ECom framework that identifies the returned instance.
TAny * aCreationParametersA pointer to the creation parameter structure passed to the creation method when called.
TBool aCreationParamsFlagA boolean flag to indicate the existence or non-existence of aCreationParameters. Will be ETrue even for if the value of aCreationParameters is NULL.

ResolveAndCreateImplL(TInt, TUid, const RExtendedInterfacesArray &, const TEComResolverParams &, TUid, TUid &, TAny *, TBool)

TAny *ResolveAndCreateImplL(TIntaServiceId,
TUidaInterfaceUid,
const RExtendedInterfacesArray &aExtendedInterfaces,
const TEComResolverParams &aResolutionParameters,
TUidaResolverUid,
TUid &aInstanceKey,
TAny *aCreationParameters,
TBoolaCreationParamsFlag
)[private]

Provides the instantiation method for an interface implementation that satisfies the specified interface. Overload for internal use to ensure consistency between calls. This is the method which actually makes the IPC call.

leave
KErrNoMemory
leave
KErrNotConnected
leave
KErrPermissionDenied
Post-condition
The requested interface implementation is identified, and the instantiation method pointer is returned.
TEComResolverParams

Parameters

TInt aServiceIdAn integer specifying the ECom service variant to use.
TUid aInterfaceUidA UID specifying the required interface.
const RExtendedInterfacesArray & aExtendedInterfacesIdentifies a set of zero or more extended interfaces to match. Must match all extended interfaces for a match to occur.
const TEComResolverParams & aResolutionParametersSpecifies any additional implementation characteristics to be fulfilled, maybe empty.
TUid aResolverUidThe Uid of a CResolver with client defined behaviour.
TUid & aInstanceKeyA 32 bit instance key returned by the ECom framework that identifies the returned instance.
TAny * aCreationParametersA pointer to the creation parameter structure passed to the creation method when called.
TBool aCreationParamsFlagA boolean flag to indicate the existence or non-existence of aCreationParameters. Will be ETrue even for if the value of aCreationParameters is NULL.

SetGetParametersL(const TIpcArgs &)

IMPORT_C voidSetGetParametersL(const TIpcArgs &aArgs)[static]
This method is provided for the internal testing of the ECOM component.
leave
... One of the system-wide error codes

Parameters

const TIpcArgs & aArgsArguments used for sending and receiving parameters

Member Data Documentation

TInt iReserved1

TInt iReserved1[private]

Not used

TInt iReserved2

TInt iReserved2[private]

not used

TInt iReserved3

TInt iReserved3[private]

not used