cmmanager/cmmgr/cmmapi/src/cmdestination.cpp
changeset 27 489cf6208544
parent 20 9c97ad6591ae
child 40 c5b848e6c7d1
--- a/cmmanager/cmmgr/cmmapi/src/cmdestination.cpp	Fri May 14 16:15:46 2010 +0300
+++ b/cmmanager/cmmgr/cmmapi/src/cmdestination.cpp	Thu May 27 13:17:01 2010 +0300
@@ -796,21 +796,44 @@
     {
     OstTraceFunctionEntry0( RCMDESTINATION_GETICONL_ENTRY );
 
-    User::Leave( KErrNotSupported );
+    if ( !iCmDestinationWrapper || !iCmDestinationWrapper->SessionConnected() )
+        {
+        User::Leave( KErrBadHandle );
+        }
+
+    HBufC* buffer = HBufC::NewLC( KCmmStringLengthMax );
+    TInt err = iCmDestinationWrapper->GetIcon( buffer );
+    User::LeaveIfError( err );
+
+    if ( buffer->Length() > 0 )
+        {
+        CleanupStack::Pop( buffer );
+        }
+    else
+        {
+        CleanupStack::PopAndDestroy( buffer );
+        buffer = KNullDesC().AllocL();
+        }
 
     OstTraceFunctionExit0( RCMDESTINATION_GETICONL_EXIT );
-    return NULL;
+    return buffer;
     }
 
 //-----------------------------------------------------------------------------
 //  RCmDestination::SetIconL()
 //-----------------------------------------------------------------------------
 //
-EXPORT_C void RCmDestination::SetIconL( const TDesC& /*aIcon*/ )
+EXPORT_C void RCmDestination::SetIconL( const TDesC& aIcon )
     {
     OstTraceFunctionEntry0( RCMDESTINATION_SETICONL_ENTRY );
 
-    User::Leave( KErrNotSupported );
+    if ( !iCmDestinationWrapper || !iCmDestinationWrapper->SessionConnected() )
+        {
+        User::Leave( KErrBadHandle );
+        }
+
+    TInt err = iCmDestinationWrapper->SetIcon( aIcon );
+    User::LeaveIfError( err );
 
     OstTraceFunctionExit0( RCMDESTINATION_SETICONL_EXIT );
     }