class MImURITranslator |
Translates a URI in an MHTML message into a message body part file name.
MHTML messages may contain multiple HTML body parts. Each of these body parts is able to reference another body part within the same multipart structure, or a body part within a parent multipart structure [RFC2110]. These references are called URI's.
When an MHTML message is parsed by the message engine, the HTML body of each part is stored as a binary file. This interface provides a means of finding the file name of the body part that corresponds to a given a URI.
The URI resolving process has the potential to become time consuming, therefore it is broken into two steps:
Resolve asynchronously the relative URI into an absolute URI. The message body parts are recursively searched in order to find an absolute base for the relative URI [RFC2110, RFC1808].
Once a relative URI has been resolved in to an absolute URI, then the message is searched for a body part that corresponds to it [RFC2110].
If no matching body part can be found, then the absolute URI is returned to the caller in place of the filename. This absolute URI should be used to search for the required data externally, for example by using HTTP.
Public Member Functions | |
---|---|
void | FindUniversalResourceIdentifierFileHandleL ( TMsvId , const TDesC &, const TDesC &, TRequestStatus &) |
void | FindUniversalResourceIdentifierL ( TMsvId , const TDesC &, const TDesC &, TRequestStatus &) |
TInt | GetUniversalResourceIdentifierFileHandle ( TMsvId &, RFile &) |
HBufC * | GetUniversalResourceIdentifierL ( TMsvId &, TBool &) |
void | FindUniversalResourceIdentifierFileHandleL | ( | TMsvId | aMessageId, |
const TDesC & | aBase, | |||
const TDesC & | aURI, | |||
TRequestStatus & | aStatus | |||
) | [pure virtual] |
Starts an asynchronous operation to resolve a specified URI.
TMsvId aMessageId | The ID of the body part containing the URI which is to be resolved. CImEmailMessage::FindFirstHTMLPageFileHandleL() can be used to find the aMessageId parameter for the first HTML page in a message. |
const TDesC & aBase | The base parameter from the HTML part that contains the URI to be resolved. If there is no base parameter in the HTML, then an empty descriptor should be passed in. |
const TDesC & aURI | The URI to be resolved. |
TRequestStatus & aStatus | Asynchronous status word |
void | FindUniversalResourceIdentifierL | ( | TMsvId | aMessageId, |
const TDesC & | rBase, | |||
const TDesC & | rURI, | |||
TRequestStatus & | aStatus | |||
) | [pure virtual] |
Starts an asynchronous operation to resolve a specified URI.
TMsvId aMessageId | The ID of the body part containing the URI which is to be resolved. CImEmailMessage::FindFirstHTMLPageL() can be used to find the aMessageId parameter for the first HTML page in a message. |
const TDesC & rBase | The base parameter from the HTML part that contains the URI to be resolved. If there is no base parameter in the HTML, then an empty descriptor should be passed in. |
const TDesC & rURI | The URI to be resolved. |
TRequestStatus & aStatus | Asynchronous status word |
TInt | GetUniversalResourceIdentifierFileHandle | ( | TMsvId & | aLinkedEntryId, |
RFile & | aFile | |||
) | const [pure virtual] |
Gets the results after a search.
TMsvId & aLinkedEntryId | On return, the message ID of the linked body part, providing one is found. Note that you should keep a record of the returned message ID as it is required for resolving any URI's that may be found in the linked body part. |
RFile & aFile | On return, the file handle corresponding to the URI if successful. If not successful, then this is not valid. |
HBufC * | GetUniversalResourceIdentifierL | ( | TMsvId & | aLinkedEntryId, |
TBool & | aFileFound | |||
) | const [pure virtual] |
Gets the results after a search.
TMsvId & aLinkedEntryId | On return, the message ID of the linked body part, providing one is found. Note that you should keep a record of the returned message ID as it is required for resolving any URI's that may be found in the linked body part. |
TBool & aFileFound | On return, true if a linked body part has been found. It is set to false otherwise. |
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.