/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM /tmp/comm-release/mailnews/local/public/nsIMailboxUrl.idl
 */

#ifndef __gen_nsIMailboxUrl_h__
#define __gen_nsIMailboxUrl_h__


#ifndef __gen_nsISupports_h__
#include "nsISupports.h"
#endif

#ifndef __gen_MailNewsTypes2_h__
#include "MailNewsTypes2.h"
#endif

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
class nsIStreamListener; /* forward declaration */

class nsIMsgDBHdr; /* forward declaration */

#include "nsIStreamListener.h"
typedef PRInt32  nsMailboxAction;


/* starting interface:    nsIMailboxUrl */
#define NS_IMAILBOXURL_IID_STR "2ac72280-90f4-4d80-8af1-5e7a1997e2a8"

#define NS_IMAILBOXURL_IID \
  {0x2ac72280, 0x90f4, 0x4d80, \
    { 0x8a, 0xf1, 0x5e, 0x7a, 0x19, 0x97, 0xe2, 0xa8 }}

class NS_NO_VTABLE NS_SCRIPTABLE nsIMailboxUrl : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMAILBOXURL_IID)

  /* attribute nsIStreamListener mailboxParser; */
  NS_SCRIPTABLE NS_IMETHOD GetMailboxParser(nsIStreamListener * *aMailboxParser) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetMailboxParser(nsIStreamListener *aMailboxParser) = 0;

  /* attribute nsIStreamListener mailboxCopyHandler; */
  NS_SCRIPTABLE NS_IMETHOD GetMailboxCopyHandler(nsIStreamListener * *aMailboxCopyHandler) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetMailboxCopyHandler(nsIStreamListener *aMailboxCopyHandler) = 0;

  /* readonly attribute nsMsgKey messageKey; */
  NS_SCRIPTABLE NS_IMETHOD GetMessageKey(nsMsgKey *aMessageKey) = 0;

  /* void setMoveCopyMsgKeys (out nsMsgKey keysToFlag, in long numKeys); */
  NS_SCRIPTABLE NS_IMETHOD SetMoveCopyMsgKeys(nsMsgKey *keysToFlag NS_OUTPARAM, PRInt32 numKeys) = 0;

  /* void getMoveCopyMsgHdrForIndex (in unsigned long msgIndex, out nsIMsgDBHdr msgHdr); */
  NS_SCRIPTABLE NS_IMETHOD GetMoveCopyMsgHdrForIndex(PRUint32 msgIndex, nsIMsgDBHdr * *msgHdr NS_OUTPARAM) = 0;

  /* readonly attribute unsigned long numMoveCopyMsgs; */
  NS_SCRIPTABLE NS_IMETHOD GetNumMoveCopyMsgs(PRUint32 *aNumMoveCopyMsgs) = 0;

  /* attribute unsigned long curMoveCopyMsgIndex; */
  NS_SCRIPTABLE NS_IMETHOD GetCurMoveCopyMsgIndex(PRUint32 *aCurMoveCopyMsgIndex) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetCurMoveCopyMsgIndex(PRUint32 aCurMoveCopyMsgIndex) = 0;

  /* attribute unsigned long messageSize; */
  NS_SCRIPTABLE NS_IMETHOD GetMessageSize(PRUint32 *aMessageSize) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetMessageSize(PRUint32 aMessageSize) = 0;

  /* attribute nsMailboxAction mailboxAction; */
  NS_SCRIPTABLE NS_IMETHOD GetMailboxAction(nsMailboxAction *aMailboxAction) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetMailboxAction(nsMailboxAction aMailboxAction) = 0;

  enum {
    ActionParseMailbox = 0,
    ActionFetchMessage = 1,
    ActionCopyMessage = 2,
    ActionMoveMessage = 3,
    ActionSaveMessageToDisk = 4,
    ActionAppendMessageToDisk = 5,
    ActionFetchPart = 6
  };

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMailboxUrl, NS_IMAILBOXURL_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMAILBOXURL \
  NS_SCRIPTABLE NS_IMETHOD GetMailboxParser(nsIStreamListener * *aMailboxParser); \
  NS_SCRIPTABLE NS_IMETHOD SetMailboxParser(nsIStreamListener *aMailboxParser); \
  NS_SCRIPTABLE NS_IMETHOD GetMailboxCopyHandler(nsIStreamListener * *aMailboxCopyHandler); \
  NS_SCRIPTABLE NS_IMETHOD SetMailboxCopyHandler(nsIStreamListener *aMailboxCopyHandler); \
  NS_SCRIPTABLE NS_IMETHOD GetMessageKey(nsMsgKey *aMessageKey); \
  NS_SCRIPTABLE NS_IMETHOD SetMoveCopyMsgKeys(nsMsgKey *keysToFlag NS_OUTPARAM, PRInt32 numKeys); \
  NS_SCRIPTABLE NS_IMETHOD GetMoveCopyMsgHdrForIndex(PRUint32 msgIndex, nsIMsgDBHdr * *msgHdr NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetNumMoveCopyMsgs(PRUint32 *aNumMoveCopyMsgs); \
  NS_SCRIPTABLE NS_IMETHOD GetCurMoveCopyMsgIndex(PRUint32 *aCurMoveCopyMsgIndex); \
  NS_SCRIPTABLE NS_IMETHOD SetCurMoveCopyMsgIndex(PRUint32 aCurMoveCopyMsgIndex); \
  NS_SCRIPTABLE NS_IMETHOD GetMessageSize(PRUint32 *aMessageSize); \
  NS_SCRIPTABLE NS_IMETHOD SetMessageSize(PRUint32 aMessageSize); \
  NS_SCRIPTABLE NS_IMETHOD GetMailboxAction(nsMailboxAction *aMailboxAction); \
  NS_SCRIPTABLE NS_IMETHOD SetMailboxAction(nsMailboxAction aMailboxAction); \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMAILBOXURL(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetMailboxParser(nsIStreamListener * *aMailboxParser) { return _to GetMailboxParser(aMailboxParser); } \
  NS_SCRIPTABLE NS_IMETHOD SetMailboxParser(nsIStreamListener *aMailboxParser) { return _to SetMailboxParser(aMailboxParser); } \
  NS_SCRIPTABLE NS_IMETHOD GetMailboxCopyHandler(nsIStreamListener * *aMailboxCopyHandler) { return _to GetMailboxCopyHandler(aMailboxCopyHandler); } \
  NS_SCRIPTABLE NS_IMETHOD SetMailboxCopyHandler(nsIStreamListener *aMailboxCopyHandler) { return _to SetMailboxCopyHandler(aMailboxCopyHandler); } \
  NS_SCRIPTABLE NS_IMETHOD GetMessageKey(nsMsgKey *aMessageKey) { return _to GetMessageKey(aMessageKey); } \
  NS_SCRIPTABLE NS_IMETHOD SetMoveCopyMsgKeys(nsMsgKey *keysToFlag NS_OUTPARAM, PRInt32 numKeys) { return _to SetMoveCopyMsgKeys(keysToFlag, numKeys); } \
  NS_SCRIPTABLE NS_IMETHOD GetMoveCopyMsgHdrForIndex(PRUint32 msgIndex, nsIMsgDBHdr * *msgHdr NS_OUTPARAM) { return _to GetMoveCopyMsgHdrForIndex(msgIndex, msgHdr); } \
  NS_SCRIPTABLE NS_IMETHOD GetNumMoveCopyMsgs(PRUint32 *aNumMoveCopyMsgs) { return _to GetNumMoveCopyMsgs(aNumMoveCopyMsgs); } \
  NS_SCRIPTABLE NS_IMETHOD GetCurMoveCopyMsgIndex(PRUint32 *aCurMoveCopyMsgIndex) { return _to GetCurMoveCopyMsgIndex(aCurMoveCopyMsgIndex); } \
  NS_SCRIPTABLE NS_IMETHOD SetCurMoveCopyMsgIndex(PRUint32 aCurMoveCopyMsgIndex) { return _to SetCurMoveCopyMsgIndex(aCurMoveCopyMsgIndex); } \
  NS_SCRIPTABLE NS_IMETHOD GetMessageSize(PRUint32 *aMessageSize) { return _to GetMessageSize(aMessageSize); } \
  NS_SCRIPTABLE NS_IMETHOD SetMessageSize(PRUint32 aMessageSize) { return _to SetMessageSize(aMessageSize); } \
  NS_SCRIPTABLE NS_IMETHOD GetMailboxAction(nsMailboxAction *aMailboxAction) { return _to GetMailboxAction(aMailboxAction); } \
  NS_SCRIPTABLE NS_IMETHOD SetMailboxAction(nsMailboxAction aMailboxAction) { return _to SetMailboxAction(aMailboxAction); } \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMAILBOXURL(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetMailboxParser(nsIStreamListener * *aMailboxParser) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMailboxParser(aMailboxParser); } \
  NS_SCRIPTABLE NS_IMETHOD SetMailboxParser(nsIStreamListener *aMailboxParser) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMailboxParser(aMailboxParser); } \
  NS_SCRIPTABLE NS_IMETHOD GetMailboxCopyHandler(nsIStreamListener * *aMailboxCopyHandler) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMailboxCopyHandler(aMailboxCopyHandler); } \
  NS_SCRIPTABLE NS_IMETHOD SetMailboxCopyHandler(nsIStreamListener *aMailboxCopyHandler) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMailboxCopyHandler(aMailboxCopyHandler); } \
  NS_SCRIPTABLE NS_IMETHOD GetMessageKey(nsMsgKey *aMessageKey) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessageKey(aMessageKey); } \
  NS_SCRIPTABLE NS_IMETHOD SetMoveCopyMsgKeys(nsMsgKey *keysToFlag NS_OUTPARAM, PRInt32 numKeys) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMoveCopyMsgKeys(keysToFlag, numKeys); } \
  NS_SCRIPTABLE NS_IMETHOD GetMoveCopyMsgHdrForIndex(PRUint32 msgIndex, nsIMsgDBHdr * *msgHdr NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMoveCopyMsgHdrForIndex(msgIndex, msgHdr); } \
  NS_SCRIPTABLE NS_IMETHOD GetNumMoveCopyMsgs(PRUint32 *aNumMoveCopyMsgs) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNumMoveCopyMsgs(aNumMoveCopyMsgs); } \
  NS_SCRIPTABLE NS_IMETHOD GetCurMoveCopyMsgIndex(PRUint32 *aCurMoveCopyMsgIndex) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCurMoveCopyMsgIndex(aCurMoveCopyMsgIndex); } \
  NS_SCRIPTABLE NS_IMETHOD SetCurMoveCopyMsgIndex(PRUint32 aCurMoveCopyMsgIndex) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCurMoveCopyMsgIndex(aCurMoveCopyMsgIndex); } \
  NS_SCRIPTABLE NS_IMETHOD GetMessageSize(PRUint32 *aMessageSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessageSize(aMessageSize); } \
  NS_SCRIPTABLE NS_IMETHOD SetMessageSize(PRUint32 aMessageSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMessageSize(aMessageSize); } \
  NS_SCRIPTABLE NS_IMETHOD GetMailboxAction(nsMailboxAction *aMailboxAction) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMailboxAction(aMailboxAction); } \
  NS_SCRIPTABLE NS_IMETHOD SetMailboxAction(nsMailboxAction aMailboxAction) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMailboxAction(aMailboxAction); } \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class nsMailboxUrl : public nsIMailboxUrl
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMAILBOXURL

  nsMailboxUrl();

private:
  ~nsMailboxUrl();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMailboxUrl, nsIMailboxUrl)

nsMailboxUrl::nsMailboxUrl()
{
  /* member initializers and constructor code */
}

nsMailboxUrl::~nsMailboxUrl()
{
  /* destructor code */
}

/* attribute nsIStreamListener mailboxParser; */
NS_IMETHODIMP nsMailboxUrl::GetMailboxParser(nsIStreamListener * *aMailboxParser)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMailboxUrl::SetMailboxParser(nsIStreamListener *aMailboxParser)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIStreamListener mailboxCopyHandler; */
NS_IMETHODIMP nsMailboxUrl::GetMailboxCopyHandler(nsIStreamListener * *aMailboxCopyHandler)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMailboxUrl::SetMailboxCopyHandler(nsIStreamListener *aMailboxCopyHandler)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsMsgKey messageKey; */
NS_IMETHODIMP nsMailboxUrl::GetMessageKey(nsMsgKey *aMessageKey)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setMoveCopyMsgKeys (out nsMsgKey keysToFlag, in long numKeys); */
NS_IMETHODIMP nsMailboxUrl::SetMoveCopyMsgKeys(nsMsgKey *keysToFlag NS_OUTPARAM, PRInt32 numKeys)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getMoveCopyMsgHdrForIndex (in unsigned long msgIndex, out nsIMsgDBHdr msgHdr); */
NS_IMETHODIMP nsMailboxUrl::GetMoveCopyMsgHdrForIndex(PRUint32 msgIndex, nsIMsgDBHdr * *msgHdr NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long numMoveCopyMsgs; */
NS_IMETHODIMP nsMailboxUrl::GetNumMoveCopyMsgs(PRUint32 *aNumMoveCopyMsgs)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long curMoveCopyMsgIndex; */
NS_IMETHODIMP nsMailboxUrl::GetCurMoveCopyMsgIndex(PRUint32 *aCurMoveCopyMsgIndex)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMailboxUrl::SetCurMoveCopyMsgIndex(PRUint32 aCurMoveCopyMsgIndex)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long messageSize; */
NS_IMETHODIMP nsMailboxUrl::GetMessageSize(PRUint32 *aMessageSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMailboxUrl::SetMessageSize(PRUint32 aMessageSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsMailboxAction mailboxAction; */
NS_IMETHODIMP nsMailboxUrl::GetMailboxAction(nsMailboxAction *aMailboxAction)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMailboxUrl::SetMailboxAction(nsMailboxAction aMailboxAction)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif


#endif /* __gen_nsIMailboxUrl_h__ */
