mtpfws/mtpfw/datatypes/src/cmtptypeobjectproplist.cpp
branchRCL_3
changeset 17 dbd1c5e08735
parent 0 d0791faffa3f
equal deleted inserted replaced
15:f85613f12947 17:dbd1c5e08735
   607 		case EValue:
   607 		case EValue:
   608             if(EMTPTypeUINT16 != iDataType)
   608             if(EMTPTypeUINT16 != iDataType)
   609                 {
   609                 {
   610                   User::Leave(KErrArgument);
   610                   User::Leave(KErrArgument);
   611                 }
   611                 }
   612             TUint16 retValue;
   612             
   613             GetValueL(&retValue, sizeof(TUint16));
   613             //Workaround for partial deletion issue observed on Windows XP/Windows7.
   614 			return retValue;
   614             //When send an object from PC to device through Windows explorer, it will
       
   615             //include the 'ProtectionStatus' property in the dataset of 'SendObjectPropList' 
       
   616             //command. While syncing through Ovi player or Windows Media Player, this property
       
   617             //will not be included.
       
   618             //When we delete a folder which contains read-only objects,we returns partial 
       
   619             //deletion code, because read-only object should not be deleted according to MTP spec.
       
   620             //On receiving this,Windows popup a dialog saying 'device stops response', this really
       
   621             //give user bad experience, to prevent this, we make this workaround here: when dataprovider
       
   622             //query value of 'ProtectionStatus' property,always return EMTPProtectionNoProtection(0x0000).
       
   623             if (EMTPObjectPropCodeProtectionStatus == iPropertyCode)
       
   624                 {
       
   625                 return EMTPProtectionNoProtection;
       
   626                 }
       
   627             else
       
   628                 {
       
   629                 TUint16 retValue;
       
   630                 GetValueL(&retValue, sizeof(TUint16));
       
   631                 return retValue;
       
   632                 }
   615 		default:
   633 		default:
   616 			User::Leave(KErrArgument);
   634 			User::Leave(KErrArgument);
   617 		}	
   635 		}	
   618 	return 0;
   636 	return 0;
   619 	}
   637 	}