зеркало из https://github.com/mozilla/pjs.git
193 строки
9.1 KiB
Plaintext
193 строки
9.1 KiB
Plaintext
/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* ***** BEGIN LICENSE BLOCK *****
|
|
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
|
*
|
|
* The contents of this file are subject to the Mozilla Public License Version
|
|
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
* the License. You may obtain a copy of the License at
|
|
* http://www.mozilla.org/MPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
* for the specific language governing rights and limitations under the
|
|
* License.
|
|
*
|
|
* The Original Code is mozilla.org code.
|
|
*
|
|
* The Initial Developer of the Original Code is
|
|
* Netscape Communications Corporation.
|
|
* Portions created by the Initial Developer are Copyright (C) 1998
|
|
* the Initial Developer. All Rights Reserved.
|
|
*
|
|
* Contributor(s):
|
|
*
|
|
* Alternatively, the contents of this file may be used under the terms of
|
|
* either of the GNU General Public License Version 2 or later (the "GPL"),
|
|
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
* in which case the provisions of the GPL or the LGPL are applicable instead
|
|
* of those above. If you wish to allow use of your version of this file only
|
|
* under the terms of either the GPL or the LGPL, and not to allow others to
|
|
* use your version of this file under the terms of the MPL, indicate your
|
|
* decision by deleting the provisions above and replace them with the notice
|
|
* and other provisions required by the GPL or the LGPL. If you do not delete
|
|
* the provisions above, a recipient may use your version of this file under
|
|
* the terms of any one of the MPL, the GPL or the LGPL.
|
|
*
|
|
* ***** END LICENSE BLOCK ***** */
|
|
|
|
#include "nsISupports.idl"
|
|
|
|
interface nsIURI;
|
|
interface nsIUrlListener;
|
|
interface nsIStreamListener;
|
|
interface nsIMsgWindow;
|
|
interface nsIFile;
|
|
interface nsIMsgFolder;
|
|
interface nsIMsgSearchSession;
|
|
interface nsIMsgDBHdr;
|
|
interface nsIStreamConverter;
|
|
|
|
%{C++
|
|
#include "nsMsgKeyArray.h"
|
|
%}
|
|
|
|
[ptr] native nsMsgKeyArrayPtr(nsMsgKeyArray);
|
|
|
|
|
|
[scriptable, uuid(e39c2eab-ad6c-4560-b642-7f98ba2c0c35)]
|
|
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 nsnull
|
|
// in for aURL if you don't care about the returned URL.
|
|
/////////////////////////////////////////////////////////////////
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////
|
|
// CopyMessage: Pass in the URI for the message you want to have
|
|
// copied.
|
|
// aCopyListener already knows about the destination folder.
|
|
// Set aMoveMessage to PR_TRUE if you want the message to be moved.
|
|
// PR_FALSE leaves it as just a copy.
|
|
///////////////////////////////////////////////////////////////
|
|
|
|
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 */
|
|
[noscript] void CopyMessages(in nsMsgKeyArrayPtr keys, in nsIMsgFolder srcFolder, in nsIStreamListener aCopyListener, in boolean aMoveMessage,
|
|
in nsIUrlListener aUrlListener, in nsIMsgWindow aMsgWindow, out nsIURI aURL);
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
// DisplayMessage: When you want a message displayed....
|
|
// aMessageURI is a uri representing the message to display.
|
|
// aDisplayConsumer is (for now) an nsIDocShell which we'll use to load
|
|
// the message into.
|
|
// XXXbz Should it be an nsIWebNavigation or something?
|
|
// aCharsetOverride (optional) character set over ride to force the message to
|
|
// use.
|
|
//
|
|
///////////////////////////////////////////////////////////////////
|
|
|
|
void DisplayMessage(in string aMessageURI,
|
|
in nsISupports aDisplayConsumer,
|
|
in nsIMsgWindow aMsgWindow,
|
|
in nsIUrlListener aUrlListener,
|
|
in string aCharsetOverride,
|
|
out nsIURI aURL);
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
// OpenAttachment: When you want an attachment downloaded
|
|
// aContentType --> we need to know the content type of the attachment
|
|
// aFileName --> the name of the attachment.
|
|
// aUrl --> string representation of the original url associated with the msg.
|
|
// aMessageUri --> RDF resource that describes the message
|
|
// aMsgWindow --> message window
|
|
///////////////////////////////////////////////////////////////////
|
|
|
|
void openAttachment(in string aContentType,
|
|
in string aFileName,
|
|
in string aUrl,
|
|
in string aMessageUri,
|
|
in nsISupports aDisplayConsumer,
|
|
in nsIMsgWindow aMsgWindow,
|
|
in nsIUrlListener aUrlListener);
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
// SaveMessageToDisk: 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.
|
|
// aMessageURI--> uri representing the message to spool out to disk.
|
|
// aFile - the file you want the message saved to
|
|
// aGenerateDummyEnvelope --> usually FALSE. Set to TRUE if you want the msg
|
|
// appended at the end of the file.
|
|
///////////////////////////////////////////////////////////////////
|
|
|
|
void SaveMessageToDisk(in string aMessageURI, in nsIFile aFile,
|
|
in boolean aGenerateDummyEnvelope,
|
|
in nsIUrlListener aUrlListener, out nsIURI aURL,
|
|
in boolean canonicalLineEnding, in nsIMsgWindow aMsgWindow);
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
// GetUrlForUri: 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!
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
void GetUrlForUri(in string aMessageURI, out nsIURI aURL, in nsIMsgWindow aMsgWindow);
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
// DisplayMessageForPrinting: When you want a message displayed in a
|
|
// format that is suitable for printing....
|
|
// aMessageURI is a uri representing the message to display.
|
|
// aDisplayConsumer is (for now) a nsIDocShell which we'll use to load
|
|
// the message into.
|
|
// XXXbz should it be an nsIWebNavigation?
|
|
///////////////////////////////////////////////////////////////////
|
|
|
|
void DisplayMessageForPrinting(in string aMessageURI, in nsISupports aDisplayConsumer,
|
|
in nsIMsgWindow aMsgWindow,
|
|
in nsIUrlListener aUrlListener,
|
|
out nsIURI aURL);
|
|
|
|
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"
|
|
// @return the URL that gets run
|
|
nsIURI streamMessage(in string aMessageURI, in nsISupports aConsumer,
|
|
in nsIMsgWindow aMsgWindow,
|
|
in nsIUrlListener aUrlListener,
|
|
in boolean aConvertData,
|
|
in string aAdditionalHeader);
|
|
/**
|
|
* now the the message datasource is going away
|
|
* we need away to go from message uri to go nsIMsgDBHdr
|
|
*/
|
|
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
|
|
{
|
|
// FetchMimePart --> used to fetch an individual mime part
|
|
// aURI --> url representing the message
|
|
// aMessageURI --> RDF URI including the part to fetch
|
|
nsIURI fetchMimePart(in nsIURI aURI, in string aMessageUri, in nsISupports aDisplayConsumer,
|
|
in nsIMsgWindow aMsgWindow,
|
|
in nsIUrlListener aUrlListener);
|
|
};
|