mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-20 23:37:33 +09:00
259 lines
9.7 KiB
Text
259 lines
9.7 KiB
Text
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#include "nsISupports.idl"
|
|
#include "MailNewsTypes2.idl"
|
|
interface nsIURI;
|
|
interface nsIUrlListener;
|
|
interface nsIStreamListener;
|
|
interface nsIMsgWindow;
|
|
interface nsIFile;
|
|
interface nsIMsgFolder;
|
|
interface nsIMsgSearchSession;
|
|
interface nsIMsgDBHdr;
|
|
interface nsIStreamConverter;
|
|
interface nsICacheEntry;
|
|
|
|
%{C++
|
|
#include "MailNewsTypes.h"
|
|
%}
|
|
|
|
[scriptable, uuid(3aa7080a-73ac-4394-9636-fc00e182319b)]
|
|
interface nsIMsgMessageService : nsISupports {
|
|
|
|
/**
|
|
* If you want a handle on the running task, pass in a valid nsIURI
|
|
* ptr. You can later interrupt this action by asking the netlib
|
|
* service manager to interrupt the url you are given back.
|
|
* Remember to release aURL when you are done with it. Pass nullptr
|
|
* in for aURL if you don't care about the returned URL.
|
|
*/
|
|
|
|
|
|
/**
|
|
* Pass in the URI for the message you want to have copied.
|
|
*
|
|
* @param aSrcURI
|
|
* @param aCopyListener already knows about the destination folder.
|
|
* @param aMoveMessage TRUE if you want the message to be moved.
|
|
* FALSE leaves it as just a copy.
|
|
* @param aUrlListener
|
|
* @param aMsgWindow
|
|
* @param aURL
|
|
*/
|
|
void CopyMessage(in string aSrcURI, in nsIStreamListener aCopyListener, in boolean aMoveMessage,
|
|
in nsIUrlListener aUrlListener, in nsIMsgWindow aMsgWindow, out nsIURI aURL);
|
|
|
|
/**
|
|
* Copy multiple messages at a time
|
|
*
|
|
* @param keys
|
|
* @param srcFolder
|
|
* @param aCopyListener
|
|
* @param aMoveMessage
|
|
* @param aUrlListener
|
|
* @param aMsgWindow
|
|
* @returns URI that's run to perform the copy
|
|
*/
|
|
nsIURI CopyMessages(in unsigned long aNumKeys,
|
|
[array, size_is (aNumKeys)] in nsMsgKey aKeys,
|
|
in nsIMsgFolder srcFolder,
|
|
in nsIStreamListener aCopyListener,
|
|
in boolean aMoveMessage,
|
|
in nsIUrlListener aUrlListener,
|
|
in nsIMsgWindow aMsgWindow);
|
|
|
|
|
|
/**
|
|
* When you want a message displayed....
|
|
*
|
|
* @param aMessageURI Is a uri representing the message to display.
|
|
* @param aDisplayConsumer Is (for now) an nsIDocShell which we'll use to load
|
|
* the message into.
|
|
* XXXbz Should it be an nsIWebNavigation or something?
|
|
* @param aMsgWindow
|
|
* @param aUrlListener
|
|
* @param aCharsetOverride (optional) character set over ride to force the message to use.
|
|
* @param aURL
|
|
*/
|
|
void DisplayMessage(in string aMessageURI,
|
|
in nsISupports aDisplayConsumer,
|
|
in nsIMsgWindow aMsgWindow,
|
|
in nsIUrlListener aUrlListener,
|
|
in string aCharsetOverride,
|
|
out nsIURI aURL);
|
|
|
|
/**
|
|
* When you want an attachment downloaded
|
|
*
|
|
* @param aContentType We need to know the content type of the attachment
|
|
* @param aFileName The name of the attachment.
|
|
* @param aUrl String representation of the original url associated with the msg.
|
|
* @param aMessageUri RDF resource that describes the message
|
|
* @param aDisplayConsumer
|
|
* @param aMsgWindow Message window
|
|
* @param aUrlListener
|
|
*/
|
|
void openAttachment(in string aContentType,
|
|
in string aFileName,
|
|
in string aUrl,
|
|
in string aMessageUri,
|
|
in nsISupports aDisplayConsumer,
|
|
in nsIMsgWindow aMsgWindow,
|
|
in nsIUrlListener aUrlListener);
|
|
|
|
/**
|
|
* When you want to spool a message out to a file on disk.
|
|
* This is an asynch operation of course. You must pass in a
|
|
* url listener in order to figure out when the operation is done.
|
|
*
|
|
* @param aMessageURI The uri representing the message to spool out to disk.
|
|
* @param aFile The file you want the message saved to
|
|
* @param aGenerateDummyEnvelope Usually FALSE. Set to TRUE if you want the msg
|
|
* appended at the end of the file.
|
|
* @param aUrlListener
|
|
* @param aURL
|
|
* @param canonicalLineEnding
|
|
* @param aMsgWindow
|
|
*/
|
|
void SaveMessageToDisk(in string aMessageURI, in nsIFile aFile,
|
|
in boolean aGenerateDummyEnvelope,
|
|
in nsIUrlListener aUrlListener, out nsIURI aURL,
|
|
in boolean canonicalLineEnding, in nsIMsgWindow aMsgWindow);
|
|
|
|
/**
|
|
* When you have a uri and you would like to convert that
|
|
* to a url which can be run through necko, you can use this method.
|
|
* the Uri MUST refer to a message and not a folder!
|
|
*
|
|
* @param aMessageURI A message uri to convert.
|
|
* @param aURL URL which can be run through necko.
|
|
* @param aMsgWindow
|
|
*/
|
|
void GetUrlForUri(in string aMessageURI, out nsIURI aURL, in nsIMsgWindow aMsgWindow);
|
|
|
|
/**
|
|
* When you want a message displayed in a format that is suitable for printing....
|
|
*
|
|
* @param aMessageURI A uri representing the message to display.
|
|
* @param aDisplayConsumer is (for now) a nsIDocShell which we'll use to load
|
|
* the message into.
|
|
* XXXbz should it be an nsIWebNavigation?
|
|
* @param aMsgWindow
|
|
* @param aUrlListener
|
|
* @param aURL
|
|
*/
|
|
void DisplayMessageForPrinting(in string aMessageURI, in nsISupports aDisplayConsumer,
|
|
in nsIMsgWindow aMsgWindow,
|
|
in nsIUrlListener aUrlListener,
|
|
out nsIURI aURL);
|
|
|
|
/**
|
|
*
|
|
*
|
|
* @param aSearchSession
|
|
* @param aMsgWindow
|
|
* @param aMsgFolder
|
|
* @param aSearchUri
|
|
*/
|
|
void Search(in nsIMsgSearchSession aSearchSession, in nsIMsgWindow aMsgWindow, in nsIMsgFolder aMsgFolder, in string aSearchUri);
|
|
|
|
/**
|
|
* This method streams a message to the passed in consumer. If aConvertData is true, it
|
|
* will create a stream converter from message rfc822 to star/star. It will also tack
|
|
* aAdditionalHeader onto the url (e.g., "header=filter").
|
|
*
|
|
* @param aMessageURI uri of message to stream
|
|
* @param aConsumer generally, a stream listener listening to the message
|
|
* @param aMsgWindow msgWindow for give progress and status feedback
|
|
* @param aUrlListener gets notified when url starts and stops
|
|
* @param aConvertData should we create a stream converter?
|
|
* @param aAdditionalHeader added to URI, e.g., "header=filter"
|
|
* @param aLocalOnly whether data should be retrieved only from local caches
|
|
* If streaming over the network is required and this is true, then
|
|
* an exception is thrown. This defaults to false.
|
|
*
|
|
* @note If we're offline, then even if aLocalOnly is false, we won't stream over the
|
|
* network
|
|
*
|
|
* @return the URL that gets run
|
|
*/
|
|
nsIURI streamMessage(in string aMessageURI, in nsISupports aConsumer,
|
|
in nsIMsgWindow aMsgWindow,
|
|
in nsIUrlListener aUrlListener,
|
|
in boolean aConvertData,
|
|
in ACString aAdditionalHeader,
|
|
[optional] in boolean aLocalOnly);
|
|
|
|
/**
|
|
* This method streams a message's headers to the passed in consumer.
|
|
* This is for consumers who want a particular header but don't
|
|
* want to stream the whole message.
|
|
*
|
|
* @param aMessageURI uri of message whose headers we are to stream
|
|
* @param aConsumer a stream listener listening to the message
|
|
headers.
|
|
* @param aUrlListener gets notified when url starts and stops, if we run a url.
|
|
* @param aLocalOnly whether data should be retrieved only from local caches
|
|
* If streaming over the network is required and this is true, then
|
|
* an exception is thrown. This defaults to false.
|
|
*
|
|
* @note If we're offline, then even if aLocalOnly is false, we won't stream over the
|
|
* network
|
|
*
|
|
* @return the URL that gets run, if any.
|
|
*/
|
|
nsIURI streamHeaders(in string aMessageURI, in nsIStreamListener aConsumer,
|
|
in nsIUrlListener aUrlListener,
|
|
[optional] in boolean aLocalOnly);
|
|
|
|
/**
|
|
* Determines whether a message is in the memory cache. Local folders
|
|
* don't implement this.
|
|
* The URL needs to address a message, not a message part, all query
|
|
* qualifiers will be stripped before looking up the entry in the cache.
|
|
*
|
|
* @param aUrl The URL of the message, possibly with an appropriate command in it
|
|
* @param aFolder The folder this message is in
|
|
*
|
|
* @return TRUE if the message is in mem cache; FALSE if it is not.
|
|
*/
|
|
boolean isMsgInMemCache(in nsIURI aUrl,
|
|
in nsIMsgFolder aFolder);
|
|
|
|
/**
|
|
* now the the message datasource is going away
|
|
* we need away to go from message uri to go nsIMsgDBHdr
|
|
*
|
|
* @param uri A message uri to get nsIMsgDBHdr for.
|
|
*
|
|
* @return nsIMsgDBHdr for specified uri or null if failed.
|
|
*/
|
|
nsIMsgDBHdr messageURIToMsgHdr(in string uri);
|
|
};
|
|
|
|
/**
|
|
* Some mail protocols (like imap) allow you to fetch individual mime parts. We use this interface
|
|
* to represent message services whose protocols support this. To use this interface, you should get
|
|
* the message service then QI for this interface. If it's present, then can fetch a mime part.
|
|
*/
|
|
[scriptable, uuid(3728C255-480C-11d4-98D0-001083010E9B)]
|
|
interface nsIMsgMessageFetchPartService : nsISupports
|
|
{
|
|
/**
|
|
* Used to fetch an individual mime part
|
|
*
|
|
* @param aURI url representing the message
|
|
* @param aMessageURI RDF URI including the part to fetch
|
|
* @param aDisplayConsumer
|
|
* @param aMsgWindow
|
|
* @param aUrlListener
|
|
*
|
|
* @return
|
|
*/
|
|
nsIURI fetchMimePart(in nsIURI aURI, in string aMessageUri, in nsISupports aDisplayConsumer,
|
|
in nsIMsgWindow aMsgWindow,
|
|
in nsIUrlListener aUrlListener);
|
|
};
|