/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * * The contents of this file are subject to the Netscape 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/NPL/ * * 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 Netscape are * Copyright (C) 1999 Netscape Communications Corporation. All * Rights Reserved. * * Contributor(s): */ #include "nsISupports.idl" #include "MailNewsTypes2.idl" #include "nsIImapProtocol.idl" #include "nsIMailboxSpec.idl" interface nsIMsgMailNewsUrl; typedef long ImapOnlineCopyState; [scriptable, uuid(5f7484b0-68b4-11d3-a53e-0060b0fc04b7)] interface ImapOnlineCopyStateType { const long kInProgress = 0; const long kSuccessfulCopy = 1; const long kSuccessfulMove = 2; const long kSuccessfulDelete = 3; const long kFailedDelete = 4; const long kReadyForAppendData = 5; const long kFailedAppend = 6; const long kInterruptedState = 7; const long kFailedCopy = 8; const long kFailedMove = 9; }; [scriptable, uuid(3b2dd7e0-e72c-11d2-ab7b-00805f8ac968)] interface nsIImapMailFolderSink : nsISupports { attribute boolean folderNeedsACLListed; attribute boolean folderNeedsSubscribing; attribute boolean folderNeedsAdded; attribute boolean folderVerifiedOnline; string GetOnlineDelimiter(); // Tell mail master about the newly selected mailbox void UpdateImapMailboxInfo(in nsIImapProtocol aProtocol, in nsIMailboxSpec aSpec); void UpdateImapMailboxStatus(in nsIImapProtocol aProtocol, in nsIMailboxSpec aSpec); void ChildDiscoverySucceeded(in nsIImapProtocol aProtocol) ; void PromptUserForSubscribeUpdatePath(in nsIImapProtocol aProtocol, out boolean aBool) ; void SetupHeaderParseStream(in nsIImapProtocol aProtocol, in unsigned long size, in string content_type, in nsIMailboxSpec boxSpec); void ParseAdoptedHeaderLine(in nsIImapProtocol aProtocol, in string messageLine, in unsigned long msgKey) ; void NormalEndHeaderParseStream(in nsIImapProtocol aProtocol); void AbortHeaderParseStream(in nsIImapProtocol aProtocol) ; void OnlineCopyCompleted(in nsIImapProtocol aProtocol, in ImapOnlineCopyState aCopyState); void StartMessage(in nsIMsgMailNewsUrl aUrl); void EndMessage(in nsIMsgMailNewsUrl aUrl, in nsMsgKey uidOfMessage); void NotifySearchHit(in nsIMsgMailNewsUrl aUrl, in string hitLine); // these two hokey methods are needed so we can try to make sure the imap url is released // on the UI thread. This in turn ensures that the objects the imap url holds on to // are only released / destroyed from the UI thread. void PrepareToReleaseUrl(in nsIMsgMailNewsUrl aUrl); void ReleaseUrl(); };