diff options
Diffstat (limited to 'mailnews/base/public/nsIMsgCopyService.idl')
-rw-r--r-- | mailnews/base/public/nsIMsgCopyService.idl | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/mailnews/base/public/nsIMsgCopyService.idl b/mailnews/base/public/nsIMsgCopyService.idl new file mode 100644 index 000000000..bbb935d16 --- /dev/null +++ b/mailnews/base/public/nsIMsgCopyService.idl @@ -0,0 +1,105 @@ +/* -*- 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; +interface nsIArray; + +[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 nsIArray 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 nsIArray 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); +}; |