diff -r 50974a8b132e -r 5d0ec8b709be serviceproviders/sapi_serviceregistry/src/serviceinterface.cpp --- a/serviceproviders/sapi_serviceregistry/src/serviceinterface.cpp Tue Nov 24 08:56:33 2009 +0200 +++ b/serviceproviders/sapi_serviceregistry/src/serviceinterface.cpp Thu Dec 17 09:09:50 2009 +0200 @@ -159,8 +159,8 @@ } else { - // Synchronous request not supported for this method. - User::Leave(KErrNotSupported); + // Synchronous request + GetListL(aInParamList, aOutParamList, transactionID, aCallBack); } }//GetList else if(aCmdName.CompareF(KCmdCancel) == 0) @@ -465,7 +465,10 @@ minver.Reset(); maxver.Reset(); serviceName.Reset(); - interfaceName.Reset(); + interfaceName.Reset(); + + if(aCallBack) + { if(!IsActive()) { @@ -487,7 +490,18 @@ aOutParamList.AppendL(TLiwGenericParam(KErrorCode, TLiwVariant(TInt32(SErrNone)))); } + else + { + GetListProviderL(this); + aOutParamList.AppendL(TLiwGenericParam(KErrorCode, + TLiwVariant(TInt32(SErrNone)))); + aOutParamList.AppendL(TLiwGenericParam(KReturnValue, + TLiwVariant(iIterator))); + iIterator->DecRef(); + iIterator = NULL; + } + } void CServiceInterface :: DoCancel() { iThread.Kill(KErrNone);