Revision control

Copy as Markdown

Other Tools

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* 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"
[scriptable, uuid(da6b9843-5464-4630-b121-c5970aa3d6ed)]
interface nsIMsgCopyServiceListener : nsISupports {
/**
* Notify the observer that the message has started to be copied. This
* method is called only once, at the beginning of a message
* copyoperation.
*/
void onStartCopy();
/**
* Notify the observer that progress as occurred for the message copy
* @param aProgress - State of progress.
* @param aProgressMax - Max progress.
*/
void onProgress(in uint32_t aProgress,
in uint32_t aProgressMax);
/**
* Setting newly created message key. This method is tailored specifically
* for nsIMsgCopyService::copyFileMessage() when saving Drafts/Templates.
* We need to have a way to inform the client what's the key of the newly
* created message.
* @param aKey - Message key.
*/
void setMessageKey(in nsMsgKey aKey);
/**
* Getting the file message message ID. This method is tailored
* specifically for nsIMsgCopyService::copyFileMessage() when saving
* Drafts/Templates. In order to work with imap server which doesn't
* support uidplus we have to use search command to retrieve the key of
* newly created message. Message ID generated by the compose guarantee its
* uniqueness.
* NOTE: The only real implementor is nsImapMailFolder::GetMessageId
*/
AUTF8String getMessageId();
/**
* Notify the observer that the message copied operation has completed.
* This method is called regardless of whether the the operation was
* successful.
* @param aStatus - indicate whether the operation was succeeded
*/
void onStopCopy(in nsresult aStatus);
};