contentmgmt/contentaccessfwfordrm/source/caf/content.cpp
changeset 8 35751d3474b7
parent 0 2c201484c85f
child 15 da2ae96f639b
--- a/contentmgmt/contentaccessfwfordrm/source/caf/content.cpp	Tue Jul 21 01:04:32 2009 +0100
+++ b/contentmgmt/contentaccessfwfordrm/source/caf/content.cpp	Thu Sep 10 14:01:51 2009 +0300
@@ -1,389 +1,398 @@
-/*
-* Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
-
-
-#include "content.h"
-#include "resolver.h"
-#include "data.h"
-#include "agentfactory.h"
-#include "agentinfo.h"
-#include "agentinterface.h"
-#include "attributeset.h"
-#include "agent.h"
-#include "virtualpath.h"
-#include "agentfactory.h"
-
-#ifndef REMOVE_CAF1
-#include "attribute.h"
-#include "bitset.h"
-#endif
-
-using namespace ContentAccess;
-
-EXPORT_C CContent* CContent::NewLC(const TDesC& aURI) 
-	{
-	return CContent::NewLC(aURI, EContentShareReadOnly);
-	}
-
-EXPORT_C CContent* CContent::NewL(const TDesC& aURI)  
-	{
-	return CContent::NewL(aURI, EContentShareReadOnly);
-	}
-
-EXPORT_C CContent* CContent::NewLC(const TDesC& aURI, TContentShareMode aShareMode) 
-	{
-	CContent* self = new(ELeave) CContent();
-	CleanupStack::PushL(self);
-	self->ConstructL(aURI, aShareMode);
-	return self;
-	}
-
-EXPORT_C CContent* CContent::NewL(const TDesC& aURI, TContentShareMode aShareMode)  
-	{
-	CContent* self=CContent::NewLC(aURI, aShareMode);
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-EXPORT_C CContent* CContent::NewLC(RFile& aFile) 
-	{
-	CContent* self = new(ELeave) CContent();
-	CleanupStack::PushL(self);
-	self->ConstructL(aFile);
-	return self;
-	}
-
-EXPORT_C CContent* CContent::NewL(RFile& aFile) 
-	{
-	CContent* self=CContent::NewLC(aFile);
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-CContent::CContent() : iDefaultVirtualPath(KNullDesC(), KDefaultContentObject())
-	{ 
-	}
-
-CContent::~CContent() 
-	{ 
-	delete iAgentContent;
-
-	if(iVirtualPath)
-		{
-		delete iVirtualPath;
-		}
-	else
-		{
-		iFile.Close();	
-		}
-	
-	// Finished with agent, this closes ECOM handle
-	delete iAgentFactory;
-	REComSession::FinalClose();
-	}
-
-
-void CContent::ConstructL(RFile &aFile) 
-	{
-	// Make our own copy of the file handle
-	User::LeaveIfError(iFile.Duplicate(aFile));
-	
-	// Rewind the file pointer
-	TInt pos = 0;
-	iFile.Seek(ESeekStart, pos);
-	
-	// For case where CAF is built with an RFile
-	CAgentResolver* resolver = CAgentResolver::NewLC(EFalse);
-	
-	// Find the agent who handles the file
-	CAgentInfo& agentInfo = resolver->ResolveFileL(iFile);
-
-	// copy the agent name and Uid
-	iAgent = agentInfo.Agent();
-
-	// Construct the agent factory (ECOM handle)
-	iAgentFactory = CAgentFactory::NewL(iAgent.ImplementationUid());
-
-	// Construct the CAgentContent object
-	iAgentContent = iAgentFactory->CreateContentBrowserL(iFile);
-
-	// Finished with resolver (and the agentInfo object it owns)
-	CleanupStack::PopAndDestroy(resolver); 
-	}
-
-void CContent::ConstructL(const TDesC& aURI, TContentShareMode aShareMode) 
-	{
-	iShareMode = aShareMode;
-
-	// Create the agent resolver which will contains a reference to
-	// the agent responsible for this piece of content
-	CAgentResolver* resolver = CAgentResolver::NewLC(EFalse);
-	
-	// Create a temporary buffer used to store the translated version of the URI
-	HBufC* actualUri = HBufC::NewLC(aURI.Length() + KMaxSIDLength);
-	TPtr uri = actualUri->Des();
-	
-	// Set the TVirtualPathPtr to point to the URI supplied, 
-	// this will decode any combined URI into the actual URI and uniqueId
-	// for use in subsequent functions
-	TVirtualPathPtr contentVirtualPath = aURI;
-
-	// Find the agent who handles the file and translate the URI if it is pointing to a private directory 
-	CAgentInfo& agentInfo = resolver->ResolveFileL(contentVirtualPath.URI(), uri, iShareMode);
-
-	// Set the iVirtualPath to point to the translated URI and the uniqueId
-	iVirtualPath = CVirtualPath::NewL(*actualUri, contentVirtualPath.UniqueId());
-	
-	iDefaultVirtualPath = *iVirtualPath;
-	
-	// Copy the agent name and Uid
-	iAgent = agentInfo.Agent();
-
-	// Construct the agent factory (ECOM handle)
-	iAgentFactory = CAgentFactory::NewL(iAgent.ImplementationUid());
-
-	// Construct the agent content browser 
-	iAgentContent = iAgentFactory->CreateContentBrowserL(uri, iShareMode);	
-	
-	// Finished with resolver and the CAgentInfo object it owns
-	CleanupStack::PopAndDestroy(2, resolver); // actualUri
-	}
-
-EXPORT_C TInt CContent::OpenContainer(const TDesC &aUniqueId) 
-	{
-	return iAgentContent->OpenContainer(aUniqueId);
-	}
-
-EXPORT_C TInt CContent::CloseContainer ()
-	{
-	return iAgentContent->CloseContainer();
-	}
-
-EXPORT_C void CContent::GetEmbeddedObjectsL (RStreamablePtrArray<CEmbeddedObject>& aArray) const
-	{
-	iAgentContent->GetEmbeddedObjectsL(aArray);
-	}
-
-EXPORT_C void CContent::GetEmbeddedObjectsL (RStreamablePtrArray<CEmbeddedObject>& aArray, TEmbeddedType aType) const
-	{
-	iAgentContent->GetEmbeddedObjectsL(aArray, aType);
-	}
-
-EXPORT_C TInt  CContent::Search (RStreamablePtrArray<CEmbeddedObject>& aArray, const TDesC8 &aMimeType, TBool aRecursive) 
-	{
-	return iAgentContent->Search(aArray, aMimeType, aRecursive);
-	}
-
-EXPORT_C TInt CContent::GetAttribute (TInt aAttribute, TInt &aValue) const
-	{
-	return GetAttribute(aAttribute, aValue, iDefaultVirtualPath.UniqueId());
-	}
-
-EXPORT_C TInt CContent::GetAttribute (TInt aAttribute, TInt& aValue, const TDesC &aUniqueId) const
-	{
-	return iAgentContent->GetAttribute(aAttribute, aValue, aUniqueId);
-	}
-
-EXPORT_C TInt CContent::GetAttributeSet(RAttributeSet& aAttributeSet) const
-	{
-	return GetAttributeSet(aAttributeSet, iDefaultVirtualPath.UniqueId());
-	}
-
-EXPORT_C TInt CContent::GetAttributeSet(RAttributeSet& aAttributeSet, const TDesC& aUniqueId) const
-	{
-	return iAgentContent->GetAttributeSet(aAttributeSet, aUniqueId);
-	}
-
-EXPORT_C TInt CContent::GetStringAttribute (TInt aAttribute, TDes &aValue) const
-	{
-	return GetStringAttribute(aAttribute, aValue, iDefaultVirtualPath.UniqueId());
-	}
-
-EXPORT_C TInt CContent::GetStringAttribute (TInt aAttribute, TDes &aValue, const TDesC &aUniqueId) const
-	{
-	return iAgentContent->GetStringAttribute(aAttribute, aValue, aUniqueId);
-	}
-
-EXPORT_C TInt CContent::GetStringAttributeSet(RStringAttributeSet& aStringAttributeSet) const
-	{
-	return GetStringAttributeSet(aStringAttributeSet, iDefaultVirtualPath.UniqueId());
-	}
-
-EXPORT_C TInt CContent::GetStringAttributeSet(RStringAttributeSet& aStringAttributeSet, const TDesC& aUniqueId) const
-	{
-	return iAgentContent->GetStringAttributeSet(aStringAttributeSet, aUniqueId);
-	}
-
-EXPORT_C TInt CContent::AgentSpecificCommand (TInt aCommand, const TDesC8 &aInputBuffer, TDes8 &aOutputBuffer) 
-	{
-	return iAgentContent->AgentSpecificCommand(aCommand, aInputBuffer, aOutputBuffer);
-	}
-
-EXPORT_C void CContent::AgentSpecificCommand (TInt aCommand, const TDesC8 &aInputBuffer, TDes8 &aOutputBuffer, TRequestStatus &aStatus) 
-	{
-	iAgentContent->AgentSpecificCommand(aCommand, aInputBuffer, aOutputBuffer, aStatus);
-	}
-
-EXPORT_C void CContent::NotifyStatusChange(TEventMask aMask, TRequestStatus &aStatus) 
-	{
-	NotifyStatusChange(aMask, aStatus, iDefaultVirtualPath.UniqueId());
-	}
-
-EXPORT_C void CContent::NotifyStatusChange(TEventMask aMask, TRequestStatus &aStatus, const TDesC &aUniqueId) 
-	{
-	iAgentContent->NotifyStatusChange(aMask, aStatus, aUniqueId);
-	}
-
-EXPORT_C TInt CContent::CancelNotifyStatusChange(TRequestStatus &aStatus) 
-	{
-	return CancelNotifyStatusChange(aStatus, iDefaultVirtualPath.UniqueId());
-	}
-
-EXPORT_C TInt CContent::CancelNotifyStatusChange(TRequestStatus &aStatus, const TDesC &aUniqueId) 
-	{
-	return iAgentContent->CancelNotifyStatusChange(aStatus, aUniqueId);
-	}
-
-EXPORT_C void  CContent::RequestRights(TRequestStatus &aStatus) 
-	{
-	RequestRights(aStatus, iDefaultVirtualPath.UniqueId());
-	}
-
-EXPORT_C void  CContent::RequestRights(TRequestStatus &aStatus, const TDesC &aUniqueId) 
-	{
-	iAgentContent->RequestRights(aStatus, aUniqueId);
-	}
-
-EXPORT_C TInt CContent::CancelRequestRights(TRequestStatus &aStatus)
-	{
-	return CancelRequestRights(aStatus, iDefaultVirtualPath.UniqueId());
-	}
-
-EXPORT_C TInt CContent::CancelRequestRights(TRequestStatus &aStatus, const TDesC& aUniqueId)
-	{
-	return iAgentContent->CancelRequestRights(aStatus, aUniqueId);
-	}
-
-EXPORT_C void CContent::DisplayInfoL(TDisplayInfo aInfo) const
-	{
-	DisplayInfoL(aInfo, iDefaultVirtualPath.UniqueId());
-	}
-
-EXPORT_C void CContent::DisplayInfoL(TDisplayInfo aInfo, const TDesC& aUniqueId) const
-	{
-	iAgentContent->DisplayInfoL(aInfo, aUniqueId);
-	}
-
-EXPORT_C TInt CContent::SetProperty(TAgentProperty aProperty, TInt aValue) 
-	{
-	return iAgentContent->SetProperty(aProperty, aValue);
-	}
-
-EXPORT_C CData* CContent::OpenContentL(TIntent aIntent)
-	{
-	return OpenContentL(aIntent, iDefaultVirtualPath.UniqueId());
-	}
-
-EXPORT_C CData* CContent::OpenContentLC(TIntent aIntent)
-	{
-	return OpenContentLC(aIntent, iDefaultVirtualPath.UniqueId());
-	}
-
-EXPORT_C CData* CContent::OpenContentL(TIntent aIntent, const TDesC &aUniqueId)
-	{
-	CData* data = OpenContentLC(aIntent, aUniqueId);
-	CleanupStack::Pop(data);
-	return data;
-	}
-
-EXPORT_C CData* CContent::OpenContentLC(TIntent aIntent, const TDesC &aUniqueId)
-	{
-	// Open the content object specified by the Unique Id
-	if(iVirtualPath)
-		{
-		// create a CData based upon the URI supplied when this CContent was created
-		return CData::NewLC(iAgent.ImplementationUid(), TVirtualPathPtr(iDefaultVirtualPath.URI(), aUniqueId), aIntent, iShareMode);
-		}
-	else
-		{
-		// create a CData based upon the file handle supplied when this CContent was created
-		return CData::NewLC(iAgent.ImplementationUid(), iFile, aUniqueId, aIntent);
-		}
-	}
-
-EXPORT_C const TAgent& CContent::Agent() const
-	{
-	// The agent handling this content
-	return iAgent;
-	}
-
-#ifndef REMOVE_CAF1 
-// Deprecated functions
-
-EXPORT_C CData* CContent::OpenContentL(TIntent aIntent, TContentShareMode aShareMode)
-	{
-	CData* data = NULL;
-	// Open the content object specified by the Unique Id
-	if(iVirtualPath)
-		{
-		// create a CData based upon the URI supplied when this CContent was created
-		data = CData::NewLC(iAgent.ImplementationUid(), iDefaultVirtualPath, aIntent, aShareMode);
-		}
-	else
-		{
-		// create a CData based upon the file handle supplied when this CContent was created
-		data = CData::NewLC(iAgent.ImplementationUid(), iFile, iDefaultVirtualPath.UniqueId(), aIntent);
-		}
-	CleanupStack::Pop(data);
-	return data;
-	}
-
-EXPORT_C CAttribute* CContent::NewAttributeL(TBool aPreloaded)
-	{
-	return NewAttributeL(aPreloaded, EContentShareReadOnly);
-	}
-
-EXPORT_C CAttribute* CContent::NewAttributeL(TBool aPreloaded, TContentShareMode aShareMode)
-	{
-	CAttribute* attr = NULL;
-	
-	if(iVirtualPath)
-		{
-		// if we were opened with a file name
-		attr = CAttribute::NewLC(iAgent.ImplementationUid(), iDefaultVirtualPath.URI(), aShareMode);
-		}
-	else
-		{
-		// if we were opened with a file handle 
-		attr = CAttribute::NewLC(iAgent.ImplementationUid(), iFile);
-		}
-
-	// If aPreloaded is set, query the agent immediately for all the attributes
-	if (aPreloaded)
-		{
-		attr->QuerySet().SetAll();
-		attr->GetL();
-		}
-
-	CleanupStack::Pop(attr);
-	return attr;
-	}
-
-#endif // REMOVE_CAF1
-
-
-// DLL entry point - only for EKA1
+/*
+* Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+
+#include <caf/content.h>
+#include "resolver.h"
+#include <caf/data.h>
+#include <caf/agentfactory.h>
+#include "agentinfo.h"
+#include <caf/agentinterface.h>
+#include <caf/attributeset.h>
+#include <caf/agent.h>
+#include <caf/virtualpath.h>
+#include <caf/agentfactory.h>
+
+#ifndef REMOVE_CAF1
+#include <caf/attribute.h>
+#include <caf/bitset.h>
+#endif
+
+using namespace ContentAccess;
+
+EXPORT_C CContent* CContent::NewLC(const TDesC& aURI) 
+	{
+	return CContent::NewLC(aURI, EContentShareReadOnly);
+	}
+
+EXPORT_C CContent* CContent::NewL(const TDesC& aURI)  
+	{
+	return CContent::NewL(aURI, EContentShareReadOnly);
+	}
+
+EXPORT_C CContent* CContent::NewLC(const TDesC& aURI, TContentShareMode aShareMode) 
+	{
+	CContent* self = new(ELeave) CContent();
+	CleanupStack::PushL(self);
+	self->ConstructL(aURI, aShareMode);
+	return self;
+	}
+
+EXPORT_C CContent* CContent::NewL(const TDesC& aURI, TContentShareMode aShareMode)  
+	{
+	CContent* self=CContent::NewLC(aURI, aShareMode);
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+EXPORT_C CContent* CContent::NewLC(RFile& aFile) 
+	{
+	CContent* self = new(ELeave) CContent();
+	CleanupStack::PushL(self);
+	self->ConstructL(aFile);
+	return self;
+	}
+
+EXPORT_C CContent* CContent::NewL(RFile& aFile) 
+	{
+	CContent* self=CContent::NewLC(aFile);
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+CContent::CContent() : iDefaultVirtualPath(KNullDesC(), KDefaultContentObject())
+	{ 
+	}
+
+CContent::~CContent() 
+	{ 
+	delete iAgentContent;
+
+	if(iVirtualPath)
+		{
+		delete iVirtualPath;
+		}
+	else
+		{
+		iFile.Close();	
+		}
+	
+	// Finished with agent, this closes ECOM handle
+	delete iAgentFactory;
+	REComSession::FinalClose();
+	}
+
+
+void CContent::ConstructL(RFile &aFile) 
+	{
+	// Make our own copy of the file handle
+	User::LeaveIfError(iFile.Duplicate(aFile));
+	
+	// Rewind the file pointer
+#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
+	TInt64 pos = 0;
+#else
+	TInt pos = 0;
+#endif //SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
+
+	iFile.Seek(ESeekStart, pos);
+	
+	// For case where CAF is built with an RFile
+	CAgentResolver* resolver = CAgentResolver::NewLC(EFalse);
+	
+	// Find the agent who handles the file
+	CAgentInfo& agentInfo = resolver->ResolveFileL(iFile);
+
+	// copy the agent name and Uid
+	iAgent = agentInfo.Agent();
+
+	// Construct the agent factory (ECOM handle)
+	iAgentFactory = CAgentFactory::NewL(iAgent.ImplementationUid());
+
+	// Construct the CAgentContent object
+	iAgentContent = iAgentFactory->CreateContentBrowserL(iFile);
+
+	// Finished with resolver (and the agentInfo object it owns)
+	CleanupStack::PopAndDestroy(resolver); 
+	}
+
+void CContent::ConstructL(const TDesC& aURI, TContentShareMode aShareMode) 
+	{
+	iShareMode = aShareMode;
+
+	// Create the agent resolver which will contains a reference to
+	// the agent responsible for this piece of content
+	CAgentResolver* resolver = CAgentResolver::NewLC(EFalse);
+	
+	// Create a temporary buffer used to store the translated version of the URI
+	HBufC* actualUri = HBufC::NewLC(aURI.Length() + KMaxSIDLength);
+	TPtr uri = actualUri->Des();
+	
+	// Set the TVirtualPathPtr to point to the URI supplied, 
+	// this will decode any combined URI into the actual URI and uniqueId
+	// for use in subsequent functions
+	TVirtualPathPtr contentVirtualPath = aURI;
+
+	// Find the agent who handles the file and translate the URI if it is pointing to a private directory 
+	CAgentInfo& agentInfo = resolver->ResolveFileL(contentVirtualPath.URI(), uri, iShareMode);
+
+	// Set the iVirtualPath to point to the translated URI and the uniqueId
+	iVirtualPath = CVirtualPath::NewL(*actualUri, contentVirtualPath.UniqueId());
+	
+	iDefaultVirtualPath = *iVirtualPath;
+	
+	// Copy the agent name and Uid
+	iAgent = agentInfo.Agent();
+
+	// Construct the agent factory (ECOM handle)
+	iAgentFactory = CAgentFactory::NewL(iAgent.ImplementationUid());
+
+	// Construct the agent content browser 
+	iAgentContent = iAgentFactory->CreateContentBrowserL(uri, iShareMode);	
+	
+	// Finished with resolver and the CAgentInfo object it owns
+	CleanupStack::PopAndDestroy(2, resolver); // actualUri
+	}
+
+EXPORT_C TInt CContent::OpenContainer(const TDesC &aUniqueId) 
+	{
+	return iAgentContent->OpenContainer(aUniqueId);
+	}
+
+EXPORT_C TInt CContent::CloseContainer ()
+	{
+	return iAgentContent->CloseContainer();
+	}
+
+EXPORT_C void CContent::GetEmbeddedObjectsL (RStreamablePtrArray<CEmbeddedObject>& aArray) const
+	{
+	iAgentContent->GetEmbeddedObjectsL(aArray);
+	}
+
+EXPORT_C void CContent::GetEmbeddedObjectsL (RStreamablePtrArray<CEmbeddedObject>& aArray, TEmbeddedType aType) const
+	{
+	iAgentContent->GetEmbeddedObjectsL(aArray, aType);
+	}
+
+EXPORT_C TInt  CContent::Search (RStreamablePtrArray<CEmbeddedObject>& aArray, const TDesC8 &aMimeType, TBool aRecursive) 
+	{
+	return iAgentContent->Search(aArray, aMimeType, aRecursive);
+	}
+
+EXPORT_C TInt CContent::GetAttribute (TInt aAttribute, TInt &aValue) const
+	{
+	return GetAttribute(aAttribute, aValue, iDefaultVirtualPath.UniqueId());
+	}
+
+EXPORT_C TInt CContent::GetAttribute (TInt aAttribute, TInt& aValue, const TDesC &aUniqueId) const
+	{
+	return iAgentContent->GetAttribute(aAttribute, aValue, aUniqueId);
+	}
+
+EXPORT_C TInt CContent::GetAttributeSet(RAttributeSet& aAttributeSet) const
+	{
+	return GetAttributeSet(aAttributeSet, iDefaultVirtualPath.UniqueId());
+	}
+
+EXPORT_C TInt CContent::GetAttributeSet(RAttributeSet& aAttributeSet, const TDesC& aUniqueId) const
+	{
+	return iAgentContent->GetAttributeSet(aAttributeSet, aUniqueId);
+	}
+
+EXPORT_C TInt CContent::GetStringAttribute (TInt aAttribute, TDes &aValue) const
+	{
+	return GetStringAttribute(aAttribute, aValue, iDefaultVirtualPath.UniqueId());
+	}
+
+EXPORT_C TInt CContent::GetStringAttribute (TInt aAttribute, TDes &aValue, const TDesC &aUniqueId) const
+	{
+	return iAgentContent->GetStringAttribute(aAttribute, aValue, aUniqueId);
+	}
+
+EXPORT_C TInt CContent::GetStringAttributeSet(RStringAttributeSet& aStringAttributeSet) const
+	{
+	return GetStringAttributeSet(aStringAttributeSet, iDefaultVirtualPath.UniqueId());
+	}
+
+EXPORT_C TInt CContent::GetStringAttributeSet(RStringAttributeSet& aStringAttributeSet, const TDesC& aUniqueId) const
+	{
+	return iAgentContent->GetStringAttributeSet(aStringAttributeSet, aUniqueId);
+	}
+
+EXPORT_C TInt CContent::AgentSpecificCommand (TInt aCommand, const TDesC8 &aInputBuffer, TDes8 &aOutputBuffer) 
+	{
+	return iAgentContent->AgentSpecificCommand(aCommand, aInputBuffer, aOutputBuffer);
+	}
+
+EXPORT_C void CContent::AgentSpecificCommand (TInt aCommand, const TDesC8 &aInputBuffer, TDes8 &aOutputBuffer, TRequestStatus &aStatus) 
+	{
+	iAgentContent->AgentSpecificCommand(aCommand, aInputBuffer, aOutputBuffer, aStatus);
+	}
+
+EXPORT_C void CContent::NotifyStatusChange(TEventMask aMask, TRequestStatus &aStatus) 
+	{
+	NotifyStatusChange(aMask, aStatus, iDefaultVirtualPath.UniqueId());
+	}
+
+EXPORT_C void CContent::NotifyStatusChange(TEventMask aMask, TRequestStatus &aStatus, const TDesC &aUniqueId) 
+	{
+	iAgentContent->NotifyStatusChange(aMask, aStatus, aUniqueId);
+	}
+
+EXPORT_C TInt CContent::CancelNotifyStatusChange(TRequestStatus &aStatus) 
+	{
+	return CancelNotifyStatusChange(aStatus, iDefaultVirtualPath.UniqueId());
+	}
+
+EXPORT_C TInt CContent::CancelNotifyStatusChange(TRequestStatus &aStatus, const TDesC &aUniqueId) 
+	{
+	return iAgentContent->CancelNotifyStatusChange(aStatus, aUniqueId);
+	}
+
+EXPORT_C void  CContent::RequestRights(TRequestStatus &aStatus) 
+	{
+	RequestRights(aStatus, iDefaultVirtualPath.UniqueId());
+	}
+
+EXPORT_C void  CContent::RequestRights(TRequestStatus &aStatus, const TDesC &aUniqueId) 
+	{
+	iAgentContent->RequestRights(aStatus, aUniqueId);
+	}
+
+EXPORT_C TInt CContent::CancelRequestRights(TRequestStatus &aStatus)
+	{
+	return CancelRequestRights(aStatus, iDefaultVirtualPath.UniqueId());
+	}
+
+EXPORT_C TInt CContent::CancelRequestRights(TRequestStatus &aStatus, const TDesC& aUniqueId)
+	{
+	return iAgentContent->CancelRequestRights(aStatus, aUniqueId);
+	}
+
+EXPORT_C void CContent::DisplayInfoL(TDisplayInfo aInfo) const
+	{
+	DisplayInfoL(aInfo, iDefaultVirtualPath.UniqueId());
+	}
+
+EXPORT_C void CContent::DisplayInfoL(TDisplayInfo aInfo, const TDesC& aUniqueId) const
+	{
+	iAgentContent->DisplayInfoL(aInfo, aUniqueId);
+	}
+
+EXPORT_C TInt CContent::SetProperty(TAgentProperty aProperty, TInt aValue) 
+	{
+	return iAgentContent->SetProperty(aProperty, aValue);
+	}
+
+EXPORT_C CData* CContent::OpenContentL(TIntent aIntent)
+	{
+	return OpenContentL(aIntent, iDefaultVirtualPath.UniqueId());
+	}
+
+EXPORT_C CData* CContent::OpenContentLC(TIntent aIntent)
+	{
+	return OpenContentLC(aIntent, iDefaultVirtualPath.UniqueId());
+	}
+
+EXPORT_C CData* CContent::OpenContentL(TIntent aIntent, const TDesC &aUniqueId)
+	{
+	CData* data = OpenContentLC(aIntent, aUniqueId);
+	CleanupStack::Pop(data);
+	return data;
+	}
+
+EXPORT_C CData* CContent::OpenContentLC(TIntent aIntent, const TDesC &aUniqueId)
+	{
+	// Open the content object specified by the Unique Id
+	if(iVirtualPath)
+		{
+		// create a CData based upon the URI supplied when this CContent was created
+		return CData::NewLC(iAgent.ImplementationUid(), TVirtualPathPtr(iDefaultVirtualPath.URI(), aUniqueId), aIntent, iShareMode);
+		}
+	else
+		{
+		// create a CData based upon the file handle supplied when this CContent was created
+		return CData::NewLC(iAgent.ImplementationUid(), iFile, aUniqueId, aIntent);
+		}
+	}
+
+EXPORT_C const TAgent& CContent::Agent() const
+	{
+	// The agent handling this content
+	return iAgent;
+	}
+
+#ifndef REMOVE_CAF1 
+// Deprecated functions
+
+EXPORT_C CData* CContent::OpenContentL(TIntent aIntent, TContentShareMode aShareMode)
+	{
+	CData* data = NULL;
+	// Open the content object specified by the Unique Id
+	if(iVirtualPath)
+		{
+		// create a CData based upon the URI supplied when this CContent was created
+		data = CData::NewLC(iAgent.ImplementationUid(), iDefaultVirtualPath, aIntent, aShareMode);
+		}
+	else
+		{
+		// create a CData based upon the file handle supplied when this CContent was created
+		data = CData::NewLC(iAgent.ImplementationUid(), iFile, iDefaultVirtualPath.UniqueId(), aIntent);
+		}
+	CleanupStack::Pop(data);
+	return data;
+	}
+
+EXPORT_C CAttribute* CContent::NewAttributeL(TBool aPreloaded)
+	{
+	return NewAttributeL(aPreloaded, EContentShareReadOnly);
+	}
+
+EXPORT_C CAttribute* CContent::NewAttributeL(TBool aPreloaded, TContentShareMode aShareMode)
+	{
+	CAttribute* attr = NULL;
+	
+	if(iVirtualPath)
+		{
+		// if we were opened with a file name
+		attr = CAttribute::NewLC(iAgent.ImplementationUid(), iDefaultVirtualPath.URI(), aShareMode);
+		}
+	else
+		{
+		// if we were opened with a file handle 
+		attr = CAttribute::NewLC(iAgent.ImplementationUid(), iFile);
+		}
+
+	// If aPreloaded is set, query the agent immediately for all the attributes
+	if (aPreloaded)
+		{
+		attr->QuerySet().SetAll();
+		attr->GetL();
+		}
+
+	CleanupStack::Pop(attr);
+	return attr;
+	}
+
+#endif // REMOVE_CAF1
+
+
+// DLL entry point - only for EKA1
+
+
+
+