contentmgmt/contentaccessfwfordrm/inc/agentinterface.h
changeset 8 35751d3474b7
parent 0 2c201484c85f
child 15 da2ae96f639b
equal deleted inserted replaced
2:675a964f4eb5 8:35751d3474b7
     1 /*
     1 /*
     2 * Copyright (c) 2003-2008 Nokia Corporation and/or its subsidiary(-ies).
     2 * Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
     3 * All rights reserved.
     3 * All rights reserved.
     4 * This component and the accompanying materials are made available
     4 * This component and the accompanying materials are made available
     5 * under the terms of the License "Eclipse Public License v1.0"
     5 * under the terms of the License "Eclipse Public License v1.0"
     6 * which accompanies this distribution, and is available
     6 * which accompanies this distribution, and is available
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
    14 * Description: 
    14 * Description: 
    15 *
    15 *
    16 */
    16 */
    17 
    17 
    18 
    18 
    19 
    19 /**
    20 /** 
    20  @file
    21 @file
    21  @publishedPartner
    22 
    22  @released
    23 @publishedPartner
       
    24 @released
       
    25 */
    23 */
    26 
    24 
    27 #ifndef __AGENTINTERFACE_H__
    25 #ifndef __AGENTINTERFACE_H__
    28 #define __AGENTINTERFACE_H__
    26 #define __AGENTINTERFACE_H__
    29 
    27 
    69 		 @leave ...		One of the other CAF error codes defined in \c caferr.h  or one of the 
    67 		 @leave ...		One of the other CAF error codes defined in \c caferr.h  or one of the 
    70 						system-wide error codes for any other errors.		 
    68 						system-wide error codes for any other errors.		 
    71 		 @capability DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted
    69 		 @capability DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted
    72 		 */
    70 		 */
    73 		virtual void DataSizeL(TInt &aSize) = 0;
    71 		virtual void DataSizeL(TInt &aSize) = 0;
       
    72 		
       
    73 #ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
       
    74 		/**
       
    75 		 This is the 64bit version of DataSizeL. Implementing this function should take advantage of 64bit
       
    76 		 file system and use RFile::Size64(TInt64 &). If this function is not implemented, fallback to 32bit 
       
    77 		 DataSizeL will be provided by CAF automatically.
       
    78 		 
       
    79 		 @see DataSizeL(TInt &aSize)
       
    80 		*/
       
    81 		virtual void DataSize64L(TInt64 &aSize);
       
    82 #endif //SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
    74 		
    83 		
    75 		/**
    84 		/**
    76 		 Allows a client to verify that the intent is supported by the
    85 		 Allows a client to verify that the intent is supported by the
    77 		 current rights for the data object. 
    86 		 current rights for the data object. 
    78 		 
    87 		 
   246 		 				of the other system-wide error codes.
   255 		 				of the other system-wide error codes.
   247 		@capability DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted 
   256 		@capability DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted 
   248 		*/
   257 		*/
   249 		virtual TInt Seek(TSeek aMode, TInt& aPos) = 0;
   258 		virtual TInt Seek(TSeek aMode, TInt& aPos) = 0;
   250 
   259 
       
   260 #ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
       
   261 		/**
       
   262 		  This is the 64bit version of Seek. Implementing this function should take advantage of 64bit
       
   263 		  file system and use RFile::Seek64(TSeek, TInt64 &). If this function is not implemented, fallback to 32bit 
       
   264 		  Seek will be provided by CAF automatically.
       
   265 		  
       
   266 		  @see Seek(TSeek aMode, TInt& aPos)
       
   267 		*/
       
   268 		virtual TInt Seek64(TSeek aMode, TInt64& aPos);
       
   269 #endif //SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
       
   270 		
   251 		/** 
   271 		/** 
   252 		Allows an application to request the modification of a property 
   272 		Allows an application to request the modification of a property 
   253 		within the agent handling this content. The agent may or may not
   273 		within the agent handling this content. The agent may or may not
   254 		permit the property to be changed
   274 		permit the property to be changed
   255 		 	
   275 		 	
   283 		@param aAttributeSet The set of attributes to query and update.
   303 		@param aAttributeSet The set of attributes to query and update.
   284 		@return Whether the attribute set was updated.
   304 		@return Whether the attribute set was updated.
   285 		@return KErrNone if the attributes were retrieved successfully.
   305 		@return KErrNone if the attributes were retrieved successfully.
   286 		@return KErrPermissionDenied if the access to the protected content is not permitted by the CAF Agent.
   306 		@return KErrPermissionDenied if the access to the protected content is not permitted by the CAF Agent.
   287 		@return Otherwise one of the CAF error codes defined in \c caferr.h  or one of the 
   307 		@return Otherwise one of the CAF error codes defined in \c caferr.h  or one of the 
   288 				other system-wide error codes for any other errors.				 
   308 				other system-wide error codes for any other errors.
       
   309 		@capability DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted 				
   289 		*/
   310 		*/
   290 		virtual TInt GetAttributeSet(RAttributeSet& aAttributeSet) = 0;
   311 		virtual TInt GetAttributeSet(RAttributeSet& aAttributeSet) = 0;
   291 
   312 
   292 		/**  Get text string attributes or meta-data for this content object
   313 		/**  Get text string attributes or meta-data for this content object
   293 
   314 
   341 		 @return KErrNone if the async read request was successfully submitted.
   362 		 @return KErrNone if the async read request was successfully submitted.
   342 		 @return KErrCANotSupported if the agent does not support this operation.
   363 		 @return KErrCANotSupported if the agent does not support this operation.
   343 		 @capability DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted 
   364 		 @capability DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted 
   344 		*/
   365 		*/
   345 		virtual TInt Read(TInt aPos, TDes8& aDes, TInt aLength, TRequestStatus& aStatus);
   366 		virtual TInt Read(TInt aPos, TDes8& aDes, TInt aLength, TRequestStatus& aStatus);
       
   367 		
       
   368 #ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
       
   369 		/**  
       
   370 		 This is the 64bit version of CAgentData::Read(TInt aPos, TDes8& aDes, TInt aLength, TRequestStatus& aStatus)
       
   371 		 Implementing this function should take advantage of 64bit file system and use RFile::Seek64(TSeek, TInt64 &) to get to
       
   372 		 the position in file specified by aPos. If this function is not implemented, fallback to 32bit 
       
   373 		 Read will be provided by CAF automatically. 
       
   374 		 
       
   375 		 @see Read(TInt aPos, TDes8& aDes, TInt aLength, TRequestStatus& aStatus)
       
   376 		*/
       
   377 		virtual TInt Read64(TInt64 aPos, TDes8& aDes, TInt aLength, TRequestStatus& aStatus);
       
   378 #endif //SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
   346 		};
   379 		};
   347 
   380 
   348 	/**	Defines the agent interface allowing clients to browse the objects 
   381 	/**	Defines the agent interface allowing clients to browse the objects 
   349 	within a file
   382 	within a file
   350 
   383 
   639 		@return KErrNone if the data was written successfully.
   672 		@return KErrNone if the data was written successfully.
   640 		@return	KErrCANewFileHandleRequired if the agent requires the client to provide a new file handle before proceeding. The agent must save its state and continue processing when the new handle is supplied by ContinueWithNewOutputFile().
   673 		@return	KErrCANewFileHandleRequired if the agent requires the client to provide a new file handle before proceeding. The agent must save its state and continue processing when the new handle is supplied by ContinueWithNewOutputFile().
   641 		@return KErrNotReady if the agent was not expecting WriteData() to be called at this point.
   674 		@return KErrNotReady if the agent was not expecting WriteData() to be called at this point.
   642 		@return Otherwise one of the other CAF error codes defined in \c caferr.h  or one of the 
   675 		@return Otherwise one of the other CAF error codes defined in \c caferr.h  or one of the 
   643 				other system-wide error codes for any other errors.
   676 				other system-wide error codes for any other errors.
   644 		@capability DRM Importing DRM protected content is not permitted for processes without DRM capability. 
       
   645 		*/
   677 		*/
   646 		virtual TInt WriteData(const TDesC8& aData)=0;
   678 		virtual TInt WriteData(const TDesC8& aData)=0;
   647 
   679 
   648 		/** Signals to the agent that the entire file has now been transferred to the agent.
   680 		/** Signals to the agent that the entire file has now been transferred to the agent.
   649 		
   681 		
   651 		@return KErrNone if the data was written successfully.
   683 		@return KErrNone if the data was written successfully.
   652 		@return	KErrCANewFileHandleRequired if the agent requires the client to provide a new file handle before proceeding. The agent must save its state and continue processing when the new handle is supplied by ContinueWithNewOutputFile().
   684 		@return	KErrCANewFileHandleRequired if the agent requires the client to provide a new file handle before proceeding. The agent must save its state and continue processing when the new handle is supplied by ContinueWithNewOutputFile().
   653 		@return KErrNotReady if the agent was not expecting WriteDataComplete() to be called at this point.
   685 		@return KErrNotReady if the agent was not expecting WriteDataComplete() to be called at this point.
   654 		@return Otherwise one of the other CAF error codes defined in \c caferr.h  or one of the 
   686 		@return Otherwise one of the other CAF error codes defined in \c caferr.h  or one of the 
   655 				other system-wide error codes for any other errors.		
   687 				other system-wide error codes for any other errors.		
   656 		@capability DRM Importing DRM protected content is not permitted for processes without DRM capability. 
       
   657 		*/
   688 		*/
   658 		virtual TInt WriteDataComplete()=0;
   689 		virtual TInt WriteDataComplete()=0;
   659 
   690 
   660 		/** Asynchronously writes a block of data from a file the agent
   691 		/** Asynchronously writes a block of data from a file the agent
   661 		 
   692 		 
   670 						is supplied by ContinueWithNewOutputFile().
   701 						is supplied by ContinueWithNewOutputFile().
   671 						KErrNotReady if the agent was not expecting WriteDataComplete() 
   702 						KErrNotReady if the agent was not expecting WriteDataComplete() 
   672 						to be called at this point. Otherwise one of the other CAF error codes 
   703 						to be called at this point. Otherwise one of the other CAF error codes 
   673 						defined in \c caferr.h  or one of the other standard system-wide 
   704 						defined in \c caferr.h  or one of the other standard system-wide 
   674 						error codes for any other errors.
   705 						error codes for any other errors.
   675 		@capability DRM Importing DRM protected content is not permitted for processes without DRM capability. 
       
   676 		*/
   706 		*/
   677 		virtual void WriteData(const TDesC8& aData, TRequestStatus& aStatus)=0;
   707 		virtual void WriteData(const TDesC8& aData, TRequestStatus& aStatus)=0;
   678 
   708 
   679 		/** Signals to the agent that the entire file has now been transferred to the agent
   709 		/** Signals to the agent that the entire file has now been transferred to the agent
   680 		
   710 		
   688 						is supplied by ContinueWithNewOutputFile().
   718 						is supplied by ContinueWithNewOutputFile().
   689 						KErrNotReady if the agent was not expecting WriteDataComplete() 
   719 						KErrNotReady if the agent was not expecting WriteDataComplete() 
   690 						to be called at this point. Otherwise one of the other CAF error codes 
   720 						to be called at this point. Otherwise one of the other CAF error codes 
   691 						defined in \c caferr.h  or one of the other standard system-wide 
   721 						defined in \c caferr.h  or one of the other standard system-wide 
   692 						error codes for any other errors.
   722 						error codes for any other errors.
   693 		@capability DRM Importing DRM protected content is not permitted for processes without DRM capability. 
       
   694 		*/
   723 		*/
   695 		virtual void WriteDataComplete(TRequestStatus& aStatus)=0;
   724 		virtual void WriteDataComplete(TRequestStatus& aStatus)=0;
   696 
   725 
   697 		/** Gets the number of output files produced so far. 
   726 		/** Gets the number of output files produced so far. 
   698 		@return The number of output files.
   727 		@return The number of output files.
   712 		The output files may only appear in this array after the WriteDataComplete() 
   741 		The output files may only appear in this array after the WriteDataComplete() 
   713 		function has been called. 
   742 		function has been called. 
   714 
   743 
   715 		@param aIndex The zero-based index of the file (must be less than the value returned by OutputFileCountL().
   744 		@param aIndex The zero-based index of the file (must be less than the value returned by OutputFileCountL().
   716 		@return The CSupplierOutputFile for this object.
   745 		@return The CSupplierOutputFile for this object.
   717 		@capability DRM Importing DRM protected content is not permitted for processes without DRM capability. 
       
   718 		*/
   746 		*/
   719 		virtual CSupplierOutputFile& OutputFileL(TInt aIndex) = 0;
   747 		virtual CSupplierOutputFile& OutputFileL(TInt aIndex) = 0;
   720 
   748 
   721 		/** Retrieve the import status
   749 		/** Retrieve the import status
   722 
   750 
   724 		Provides feedback to the client in case any problems are encountered.
   752 		Provides feedback to the client in case any problems are encountered.
   725 
   753 
   726 		The client can then decide whether or not to continue the import.
   754 		The client can then decide whether or not to continue the import.
   727 		 
   755 		 
   728 		@return	The state of the import operation.
   756 		@return	The state of the import operation.
   729 		@capability DRM Importing DRM protected content is not permitted for processes without DRM capability. 
       
   730 		*/
   757 		*/
   731 		virtual TImportStatus GetImportStatus() const = 0;
   758 		virtual TImportStatus GetImportStatus() const = 0;
   732 
   759 
   733 		
   760 		
   734 		/** Get the agents suggestion for the file extension of the output file required by the agent
   761 		/** Get the agents suggestion for the file extension of the output file required by the agent
  1054 				other system-wide error codes for any other errors.
  1081 				other system-wide error codes for any other errors.
  1055 		@capability DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted. 
  1082 		@capability DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted. 
  1056 		*/
  1083 		*/
  1057 		virtual TInt GetAttribute(TInt aAttribute, TInt& aValue, const TVirtualPathPtr& aVirtualPath) = 0;
  1084 		virtual TInt GetAttribute(TInt aAttribute, TInt& aValue, const TVirtualPathPtr& aVirtualPath) = 0;
  1058 
  1085 
       
  1086 		/**  Get a content's attribute from a file specified by file handle. Can be used when the source file is in the client's private directory.
       
  1087 	
       
  1088 		@param aAttribute The attribute to retrieve, from ContentAccess::TAttribute.
       
  1089 		@param aValue Used to return the value of the attribute.
       
  1090 		@param aFile The file handle for the file containing the content object.
       
  1091 		@param aUniqueId The unique id of the content object.
       
  1092 		@return Whether the attribute value was updated.
       
  1093 		@return KErrNone if the attribute value was updated.
       
  1094 		@return KErrNotFound if the URI or the object with the given UniqueId inside the file was not found.
       
  1095 		@return KErrCANotSupported if the feature or the requested attribute is not supported for this content object.
       
  1096 		@return Otherwise one of the other CAF error codes defined in \c caferr.h  or one of the 
       
  1097 				other system-wide error codes for any other errors.
       
  1098 		@capability DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted. 
       
  1099 		*/
       
  1100 		IMPORT_C virtual TInt GetAttribute(TInt aAttribute, TInt& aValue, RFile& aFile, const TDesC& aUniqueId);
       
  1101 		
  1059 		/** Get a set of attributes from a content object
  1102 		/** Get a set of attributes from a content object
  1060 
  1103 
  1061 		@param aAttributeSet The set of attributes to query and update.
  1104 		@param aAttributeSet The set of attributes to query and update.
  1062 		@param aVirtualPath The content object to retrieve attributes from.
  1105 		@param aVirtualPath The content object to retrieve attributes from.
  1063 		@return Whether the attribute set was updated.
  1106 		@return Whether the attribute set was updated.
  1067 				other system-wide error codes for any other errors.
  1110 				other system-wide error codes for any other errors.
  1068 		@capability DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted. 
  1111 		@capability DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted. 
  1069 		*/
  1112 		*/
  1070 		virtual TInt GetAttributeSet(RAttributeSet& aAttributeSet, const TVirtualPathPtr& aVirtualPath) = 0;
  1113 		virtual TInt GetAttributeSet(RAttributeSet& aAttributeSet, const TVirtualPathPtr& aVirtualPath) = 0;
  1071 		
  1114 		
       
  1115 		/** Get a content's set of attributes from a file specified by file handle. Can be used when the source file is in the client's private directory.
       
  1116 
       
  1117 		@param aAttributeSet The set of attributes to query and update.
       
  1118 		@param aFile The file handle for the file containing the content object.
       
  1119 		@param aUniqueId The unique id of the content object.
       
  1120 		@return Whether the attribute set was updated.
       
  1121 		@return KErrNone if the attribute set was updated successfully.
       
  1122 		@return KErrNotFound if the content object was not found.
       
  1123 		@return KErrCANotSupported if the feature not supported.
       
  1124 		@return Otherwise one of the other CAF error codes defined in \c caferr.h  or one of the 
       
  1125 				other system-wide error codes for any other errors.
       
  1126 		@capability DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted. 
       
  1127 		*/
       
  1128 		IMPORT_C virtual TInt GetAttributeSet(RAttributeSet& aAttributeSet, RFile& aFile, const TDesC& aUniqueId);	
       
  1129 
  1072 		/**  Get text string attributes or meta-data from the file 
  1130 		/**  Get text string attributes or meta-data from the file 
  1073 
  1131 
  1074 		@param aAttribute The attribute to retrieve, from ContentAccess::TStringAttribute.
  1132 		@param aAttribute The attribute to retrieve, from ContentAccess::TStringAttribute.
  1075 		@param aValue Used to return the value of the attribute.
  1133 		@param aValue Used to return the value of the attribute.
  1076 		@param aVirtualPath The content object whose attributes are to be retrieved.
  1134 		@param aVirtualPath The content object whose attributes are to be retrieved.
  1083 				other system-wide error codes for any other errors.
  1141 				other system-wide error codes for any other errors.
  1084 		@capability DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted. 
  1142 		@capability DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted. 
  1085 		*/
  1143 		*/
  1086 		virtual TInt GetStringAttribute(TInt aAttribute, TDes& aValue, const TVirtualPathPtr& aVirtualPath) = 0;
  1144 		virtual TInt GetStringAttribute(TInt aAttribute, TDes& aValue, const TVirtualPathPtr& aVirtualPath) = 0;
  1087 
  1145 
       
  1146 		/**  Get a content's text string attribute from a file specified by file handle. Can be used when the source file is in the client's private directory.
       
  1147 	
       
  1148 		@param aAttribute The attribute to retrieve, from ContentAccess::TAttribute.
       
  1149 		@param aValue Used to return the value of the attribute.
       
  1150 		@param aFile The file handle for the file containing the content object.
       
  1151 		@param aUniqueId The unique id of the content object whose attributes are to be retrieved.
       
  1152 		@return Whether the attribute value was updated.
       
  1153 		@return KErrNone if the attribute value was updated.
       
  1154 		@return KErrNotFound if the content object does not exist.
       
  1155 		@return KErrCANotSupported if the feature or the requested attribute is not supported for this content object.
       
  1156 		@return KErrOverflow if the buffer was not large enough to return the result.
       
  1157 		@return Otherwise one of the other CAF error codes defined in \c caferr.h  or one of the 
       
  1158 				other system-wide error codes for any other errors.
       
  1159 		@capability DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted. 
       
  1160 		*/		
       
  1161 		IMPORT_C virtual TInt GetStringAttribute(TInt aAttribute, TDes& aValue, RFile& aFile, const TDesC& aUniqueId);
       
  1162 
  1088 		/** Used to obtain a set of string attributes 
  1163 		/** Used to obtain a set of string attributes 
  1089 
  1164 
  1090 		@param aStringAttributeSet The set of attributes to query and update.
  1165 		@param aStringAttributeSet The set of attributes to query and update.
  1091 		@param aVirtualPath The content object whose attributes are to be retrieved.
  1166 		@param aVirtualPath The content object whose attributes are to be retrieved.
  1092 		@return Whether the string attribute set was updated.
  1167 		@return Whether the string attribute set was updated.
  1096 				other system-wide error codes for any other errors.
  1171 				other system-wide error codes for any other errors.
  1097 		@capability DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted. 
  1172 		@capability DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted. 
  1098 		*/
  1173 		*/
  1099 		virtual TInt GetStringAttributeSet(RStringAttributeSet& aStringAttributeSet, const TVirtualPathPtr& aVirtualPath) = 0;
  1174 		virtual TInt GetStringAttributeSet(RStringAttributeSet& aStringAttributeSet, const TVirtualPathPtr& aVirtualPath) = 0;
  1100 
  1175 
       
  1176 		/** Get a content's set of string attributes from a file specified by file handle. Can be used when the source file is in the client's private directory.
       
  1177 
       
  1178 		@param aStringAttributeSet The set of attributes to query and update.
       
  1179 		@param aFile The file handle for the file containing the content object.
       
  1180 		@param aUniqueId The unique id of the content object whose attributes are to be retrieved	
       
  1181 		@return Whether the string attribute set was updated.
       
  1182 		@return KErrNone if the attribute set was updated successfully.
       
  1183 		@return KErrNotFound if the object with the given virtual path was not found.
       
  1184 		@return KErrCANotSupported if the feature not supported.
       
  1185 		@return Otherwise one of the other CAF error codes defined in \c caferr.h  or one of the 
       
  1186 				other system-wide error codes for any other errors.
       
  1187 		@capability DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted. 
       
  1188 		*/
       
  1189 		IMPORT_C virtual TInt GetStringAttributeSet(RStringAttributeSet& aStringAttributeSet, RFile& aFile, const TDesC& aUniqueId);
       
  1190 				
  1101 		/** Notify the caller when the status of a DRM protected content object changes.
  1191 		/** Notify the caller when the status of a DRM protected content object changes.
  1102 		NB: No assumption should be made about the scope of the descriptor 
  1192 		NB: No assumption should be made about the scope of the descriptor 
  1103 		passed to aURI for asynchronous IPC.
  1193 		passed to aURI for asynchronous IPC.
  1104 
  1194 
  1105 		@param aURI The location of the file.
  1195 		@param aURI The location of the file.
  1147 						for any other errors.		
  1237 						for any other errors.		
  1148 		@capability DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted. 
  1238 		@capability DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted. 
  1149 		*/
  1239 		*/
  1150 		virtual void DisplayInfoL(TDisplayInfo aInfo, const TVirtualPathPtr& aVirtualPath) = 0;
  1240 		virtual void DisplayInfoL(TDisplayInfo aInfo, const TVirtualPathPtr& aVirtualPath) = 0;
  1151 
  1241 
       
  1242 		/** View information associated with a single content object in a file specified by file handle. Can be used when the source file is in the client's private directory.
       
  1243 		
       
  1244 		This call blocks execution and only returns once the display is dismissed 
       
  1245 		by the user.
       
  1246 
       
  1247 		@param aInfo The information to display.
       
  1248 		@param aFile The file handle for the file containing the content object.
       
  1249 		@param aUniqueId The unique id of the content object.	
       
  1250 		@leave KErrCANotSupported if the feature not supported or if agent cannot display the requested information.
       
  1251 		@leave ...		One of the other CAF error codes defined in \c caferr.h  
       
  1252 		 				or one of the system-wide error codes 
       
  1253 						for any other errors.		
       
  1254 		@capability DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted. 
       
  1255 		*/
       
  1256 		IMPORT_C virtual void DisplayInfoL(TDisplayInfo aInfo, RFile& aFile, const TDesC& aUniqueId);
       
  1257 	
  1152 		/** 
  1258 		/** 
  1153 		Identifies whether or not the file at the given URI is to be handled by
  1259 		Identifies whether or not the file at the given URI is to be handled by
  1154 		this agent.
  1260 		this agent.
  1155 
  1261 
  1156 		The agent should perform the mimimum possible processing to make the recognition
  1262 		The agent should perform the mimimum possible processing to make the recognition
  1359 						for any other errors.				
  1465 						for any other errors.				
  1360 		@capability DRM Access to DRM rights is not permitted for processes without DRM capability. 
  1466 		@capability DRM Access to DRM rights is not permitted for processes without DRM capability. 
  1361 		*/
  1467 		*/
  1362 		virtual void ListRightsL(RStreamablePtrArray<CRightsInfo>& aArray, TVirtualPathPtr& aVirtualPath) const = 0;
  1468 		virtual void ListRightsL(RStreamablePtrArray<CRightsInfo>& aArray, TVirtualPathPtr& aVirtualPath) const = 0;
  1363 
  1469 
       
  1470 		/** List all rights associated with a particular content object in a file specified by file handle. Can be used when the source file is in the client's private directory.
       
  1471 		
       
  1472 		@param aArray  		The client supplied array used to store the CRightsInfo objects. The agent will add CRightsInfo objects to the supplied array.
       
  1473 		@param aFile  		The file handle for the file containing the content object.
       
  1474 		@param aUniqueId	The unique id of the content object.
       
  1475 		@leave KErrCANotSupported if the feature not supported.
       
  1476 		@leave KErrPermissionDenied If the agent does not permit the client to access rights information.
       
  1477 		@leave ...		One of the CAF error codes defined in \c caferr.h  
       
  1478 		 				or one of the other system-wide error codes 
       
  1479 						for any other errors.				
       
  1480 		@capability DRM Access to DRM rights is not permitted for processes without DRM capability. 
       
  1481 		*/
       
  1482 		IMPORT_C virtual void ListRightsL(RStreamablePtrArray<CRightsInfo>& aArray, RFile& aFile, const TDesC& aUniqueId) const;			
       
  1483 
  1364 		/** List all content associated with a particular rights object
  1484 		/** List all content associated with a particular rights object
  1365 		@param aArray The client supplied array used to store the list of content objects. The agent will add CVirtualPath objects to the supplied array.
  1485 		@param aArray The client supplied array used to store the list of content objects. The agent will add CVirtualPath objects to the supplied array.
  1366 		@param aRightsInfo The rights object.
  1486 		@param aRightsInfo The rights object.
  1367 		@leave KErrPermissionDenied If the agent does not permit the client to access rights information.
  1487 		@leave KErrPermissionDenied If the agent does not permit the client to access rights information.
  1368 		@leave ...		One of the CAF error codes defined in \c caferr.h  
  1488 		@leave ...		One of the CAF error codes defined in \c caferr.h  
  1396 		@return KErrNotFound if the rights object does not exist.
  1516 		@return KErrNotFound if the rights object does not exist.
  1397 		@return KErrPermissionDenied if the agent does not permit the client to access rights information.
  1517 		@return KErrPermissionDenied if the agent does not permit the client to access rights information.
  1398 		@capability DRM Access to DRM rights is not permitted for processes without DRM capability. 
  1518 		@capability DRM Access to DRM rights is not permitted for processes without DRM capability. 
  1399 		*/
  1519 		*/
  1400 		virtual TInt DeleteRightsObject(const CRightsInfo& aRightsInfo) = 0;
  1520 		virtual TInt DeleteRightsObject(const CRightsInfo& aRightsInfo) = 0;
  1401 
  1521 		
  1402 		/** Deletes all rights associated with a particular content object
  1522 		/** Deletes all rights associated with a particular content object
  1403 
  1523 
  1404 		The agent may display a dialog asking the user to confirm the delete. Execution
  1524 		The agent may display a dialog asking the user to confirm the delete. Execution
  1405 		will be blocked until the dialog is complete. Applications can request 
  1525 		will be blocked until the dialog is complete. Applications can request 
  1406 		to disable the agents user interface using the SetProperty() command
  1526 		to disable the agents user interface using the SetProperty() command
  1413 		@return KErrPermissionDenied if the agent does not permit the client to access rights information.
  1533 		@return KErrPermissionDenied if the agent does not permit the client to access rights information.
  1414 		@capability DRM Access to DRM rights is not permitted for processes without DRM capability. 
  1534 		@capability DRM Access to DRM rights is not permitted for processes without DRM capability. 
  1415 		*/
  1535 		*/
  1416 		virtual TInt DeleteAllRightsObjects(const TVirtualPathPtr& aVirtualPath) = 0;
  1536 		virtual TInt DeleteAllRightsObjects(const TVirtualPathPtr& aVirtualPath) = 0;
  1417 
  1537 
       
  1538 		/** Deletes all rights associated with a particular content object in a file specified by file handle. Can be used when the source file is in the client's private directory.
       
  1539 
       
  1540 		The agent may display a dialog asking the user to confirm the delete. Execution
       
  1541 		will be blocked until the dialog is complete. Applications can request 
       
  1542 		to disable the agents user interface using the SetProperty() command.
       
  1543 
       
  1544 		@param aFile The file handle for the file containing the content object.
       
  1545 		@param aUniqueId The unique id of the content object.
       
  1546 		@return The outcome of the delete operation.
       
  1547 		@return KErrNone if the rights were deleted.
       
  1548 		@return KErrNotFound if no rights objects exist for the specified content object.
       
  1549 		@return KErrCancel if the user cancels an agent supplied confirmation dialog.
       
  1550 		@return KErrPermissionDenied if the agent does not permit the client to access rights information.
       
  1551 		@return KErrCANotSupported if the feature not supported.
       
  1552 		@capability DRM Access to DRM rights is not permitted for processes without DRM capability. 
       
  1553 		*/
       
  1554 		IMPORT_C virtual TInt DeleteAllRightsObjects (RFile& aFile, const TDesC& aUniqueId); 
       
  1555 			
  1418 		/** 
  1556 		/** 
  1419 		Allows an application to request the modification of a property 
  1557 		Allows an application to request the modification of a property 
  1420 		within the agent. The agent may or may not permit the property to be changed
  1558 		within the agent. The agent may or may not permit the property to be changed
  1421 		 	
  1559 		 	
  1422 		@param aProperty The property to set.
  1560 		@param aProperty The property to set.