105 строки
5.1 KiB
Plaintext
105 строки
5.1 KiB
Plaintext
/* -*- Mode: C++; tab-width: 4; 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 "nsrootidl.idl"
|
|
#include "nsISupports.idl"
|
|
#include "nsIMsgFolder.idl"
|
|
#include "nsIMsgCopyServiceListener.idl"
|
|
|
|
interface nsIMsgDBHdr;
|
|
interface nsIMsgWindow;
|
|
interface nsIFile;
|
|
|
|
[scriptable, uuid(f21e428b-73c5-4607-993b-d37325b33722)]
|
|
interface nsIMsgCopyService : nsISupports {
|
|
|
|
/**
|
|
* Copies or moves existing messages from source folder to destination folder.
|
|
*
|
|
* @param srcFolder Source folder of an operation.
|
|
* @param messages The array of nsIMsgHdrs in source folder which will be moved/copied.
|
|
* @param dstFolder Destination folder of operation.
|
|
* @param isMove false for copy operation, true for move operation.
|
|
* @param listener Listener which receive operation notifications
|
|
* @param msgWindow Window for notification callbacks, can be null.
|
|
* @param allowUndo Specifies if this operation will be done as an transaction
|
|
* that can be undone.
|
|
*/
|
|
void CopyMessages(in nsIMsgFolder srcFolder,
|
|
in Array<nsIMsgDBHdr> messages,
|
|
in nsIMsgFolder dstFolder,
|
|
in boolean isMove,
|
|
in nsIMsgCopyServiceListener listener,
|
|
in nsIMsgWindow msgWindow,
|
|
in boolean allowUndo);
|
|
|
|
/**
|
|
* Copies or moves existing folders do destination folder.
|
|
*
|
|
* @param folders The array of nsIMsgFolders which will be moved/copied.
|
|
* @param dstFolder The destination folder of operation.
|
|
* @param isMove false for copy operation, true for move operation.
|
|
* @param listener Listener which receive operation notifications.
|
|
* @param msgWindow Window for notification callbacks, can be null.
|
|
*/
|
|
void copyFolders(in Array<nsIMsgFolder> folders,
|
|
in nsIMsgFolder dstFolder,
|
|
in boolean isMove,
|
|
in nsIMsgCopyServiceListener listener,
|
|
in nsIMsgWindow msgWindow);
|
|
|
|
/**
|
|
* Copies message in rfc format from file to folder.
|
|
*
|
|
* @param aFile A file which contains message in rfc format which
|
|
* will copied to destFolder.
|
|
* @param dstFolder Destination folder where a message will be copied.
|
|
* @param msgToReplace Header which identifies a message to use as a source
|
|
* of message properties, or null. For example, when
|
|
* deleting an attachment, the processed message is
|
|
* stored in a file, but the metadata should be copied
|
|
* from the original message. This method will NOT delete
|
|
* the original message.
|
|
* @param isDraftOrTemplate Specifies whether a message is a stored in draft
|
|
* folder or not. If is true listener should
|
|
* implement GetMessageId and return unique id for
|
|
* message in destination folder. This is important
|
|
* for IMAP servers which doesn't support uidplus.
|
|
* If destination folder contains message with the
|
|
* same message-id then it is possible that listener
|
|
* get wrong message key in callback
|
|
* nsIMsgCopyServiceListener::SetMessageKey.
|
|
* @param aMsgFlags Message flags which will be set after message is
|
|
* copied
|
|
* @param aMsgKeywords Keywords which will be set for newly copied
|
|
* message.
|
|
* @param listener Listener which receive copy notifications.
|
|
* @param msgWindow Window for notification callbacks, can be null.
|
|
*/
|
|
void CopyFileMessage(in nsIFile aFile,
|
|
in nsIMsgFolder dstFolder,
|
|
in nsIMsgDBHdr msgToReplace,
|
|
in boolean isDraftOrTemplate,
|
|
in unsigned long aMsgFlags,
|
|
in ACString aMsgKeywords,
|
|
in nsIMsgCopyServiceListener listener,
|
|
in nsIMsgWindow msgWindow);
|
|
|
|
/**
|
|
* Notify the message copy service that the destination folder has finished
|
|
* it's messages copying operation so that the copy service can continue
|
|
* copying the rest of the messages if there are more to copy with.
|
|
* aSupport and dstFolder uniquely identify a copy service request.
|
|
*
|
|
* @param aSupport The originator of CopyMessages or CopyFileMessage; it can
|
|
* be either a nsIMsgFolder or a nsIFile
|
|
* @param dstFolder The destination folder which performs the copy operation
|
|
* @param result The result of the copy operation
|
|
*/
|
|
void NotifyCompletion(in nsISupports aSupport,
|
|
in nsIMsgFolder dstFolder,
|
|
in nsresult result);
|
|
};
|