Symbian
Symbian Developer Library

SYMBIAN OS V9.4

Feedback

[Index] [Previous] [Next]


How to filter implementations by vendor ID

To maintain security or improve functionality, you can restrict clients to using only plug-ins supplied by a particular company. Platform security provides a mechanism for executables to be marked with a vendor identifier, by using the vendorid keyword in its project file, and this information can be used in the selection of plug-ins.

To do this, you do not use the usual plug-in selection technique of supplying a data to a resolver using an TEComResolverParams object (as described in How to define instantiation functions). Instead, you should:

  1. Get a list of available implementations of an interface using REComSession::ListImplementationsL(),

  2. Get the vendor ID of each implementation in turn, using CImplementationInformation::VendorId().

  3. If the correct vendor ID is found, read other information, such as the plug-in implementation UID, from the CImplementationInformation object, and use this as required.

Example

// Specify interface for which to get implementations
TUid interfaceUid={0xxxxxxxxx};
RImplInfoPtrArray implArray;
// get list of implementations into the array
REComSession::ListImplementationsL(interfaceUid, implArray);

// loop through implementations
TInt implCount = implArray.Count();
for(TInt count = 0; count < implCount; count++)
  {
  // read vendor ID
  const CImplementationInformation* implInfo = implArray[count];
  TVendorId vid = implInfo->VendorId();

  < . . . more statements . . . >

  }

< . . . more statements . . . >

implArray.ResetAndDestroy();
REComSession::FinalClose();