/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM ../../../dist/idl/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 */

typedef int32_t  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 nsIMailboxUrl : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMAILBOXURL_IID)

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

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

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

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

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

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

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

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

  /* attribute nsMailboxAction mailboxAction; */
  NS_IMETHOD GetMailboxAction(nsMailboxAction *aMailboxAction) = 0;
  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_IMETHOD GetMailboxParser(nsIStreamListener * *aMailboxParser) override; \
  NS_IMETHOD SetMailboxParser(nsIStreamListener *aMailboxParser) override; \
  NS_IMETHOD GetMailboxCopyHandler(nsIStreamListener * *aMailboxCopyHandler) override; \
  NS_IMETHOD SetMailboxCopyHandler(nsIStreamListener *aMailboxCopyHandler) override; \
  NS_IMETHOD GetMessageKey(nsMsgKey *aMessageKey) override; \
  NS_IMETHOD SetMoveCopyMsgKeys(nsMsgKey *keysToFlag, int32_t numKeys) override; \
  NS_IMETHOD GetMoveCopyMsgHdrForIndex(uint32_t msgIndex, nsIMsgDBHdr * *msgHdr) override; \
  NS_IMETHOD GetNumMoveCopyMsgs(uint32_t *aNumMoveCopyMsgs) override; \
  NS_IMETHOD GetCurMoveCopyMsgIndex(uint32_t *aCurMoveCopyMsgIndex) override; \
  NS_IMETHOD SetCurMoveCopyMsgIndex(uint32_t aCurMoveCopyMsgIndex) override; \
  NS_IMETHOD GetMessageSize(uint32_t *aMessageSize) override; \
  NS_IMETHOD SetMessageSize(uint32_t aMessageSize) override; \
  NS_IMETHOD GetMailboxAction(nsMailboxAction *aMailboxAction) override; \
  NS_IMETHOD SetMailboxAction(nsMailboxAction aMailboxAction) override; \

/* Use this macro when declaring the members of this interface when the
   class doesn't implement the interface. This is useful for forwarding. */
#define NS_DECL_NON_VIRTUAL_NSIMAILBOXURL \
  NS_METHOD GetMailboxParser(nsIStreamListener * *aMailboxParser); \
  NS_METHOD SetMailboxParser(nsIStreamListener *aMailboxParser); \
  NS_METHOD GetMailboxCopyHandler(nsIStreamListener * *aMailboxCopyHandler); \
  NS_METHOD SetMailboxCopyHandler(nsIStreamListener *aMailboxCopyHandler); \
  NS_METHOD GetMessageKey(nsMsgKey *aMessageKey); \
  NS_METHOD SetMoveCopyMsgKeys(nsMsgKey *keysToFlag, int32_t numKeys); \
  NS_METHOD GetMoveCopyMsgHdrForIndex(uint32_t msgIndex, nsIMsgDBHdr * *msgHdr); \
  NS_METHOD GetNumMoveCopyMsgs(uint32_t *aNumMoveCopyMsgs); \
  NS_METHOD GetCurMoveCopyMsgIndex(uint32_t *aCurMoveCopyMsgIndex); \
  NS_METHOD SetCurMoveCopyMsgIndex(uint32_t aCurMoveCopyMsgIndex); \
  NS_METHOD GetMessageSize(uint32_t *aMessageSize); \
  NS_METHOD SetMessageSize(uint32_t aMessageSize); \
  NS_METHOD GetMailboxAction(nsMailboxAction *aMailboxAction); \
  NS_METHOD 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_IMETHOD GetMailboxParser(nsIStreamListener * *aMailboxParser) override { return _to GetMailboxParser(aMailboxParser); } \
  NS_IMETHOD SetMailboxParser(nsIStreamListener *aMailboxParser) override { return _to SetMailboxParser(aMailboxParser); } \
  NS_IMETHOD GetMailboxCopyHandler(nsIStreamListener * *aMailboxCopyHandler) override { return _to GetMailboxCopyHandler(aMailboxCopyHandler); } \
  NS_IMETHOD SetMailboxCopyHandler(nsIStreamListener *aMailboxCopyHandler) override { return _to SetMailboxCopyHandler(aMailboxCopyHandler); } \
  NS_IMETHOD GetMessageKey(nsMsgKey *aMessageKey) override { return _to GetMessageKey(aMessageKey); } \
  NS_IMETHOD SetMoveCopyMsgKeys(nsMsgKey *keysToFlag, int32_t numKeys) override { return _to SetMoveCopyMsgKeys(keysToFlag, numKeys); } \
  NS_IMETHOD GetMoveCopyMsgHdrForIndex(uint32_t msgIndex, nsIMsgDBHdr * *msgHdr) override { return _to GetMoveCopyMsgHdrForIndex(msgIndex, msgHdr); } \
  NS_IMETHOD GetNumMoveCopyMsgs(uint32_t *aNumMoveCopyMsgs) override { return _to GetNumMoveCopyMsgs(aNumMoveCopyMsgs); } \
  NS_IMETHOD GetCurMoveCopyMsgIndex(uint32_t *aCurMoveCopyMsgIndex) override { return _to GetCurMoveCopyMsgIndex(aCurMoveCopyMsgIndex); } \
  NS_IMETHOD SetCurMoveCopyMsgIndex(uint32_t aCurMoveCopyMsgIndex) override { return _to SetCurMoveCopyMsgIndex(aCurMoveCopyMsgIndex); } \
  NS_IMETHOD GetMessageSize(uint32_t *aMessageSize) override { return _to GetMessageSize(aMessageSize); } \
  NS_IMETHOD SetMessageSize(uint32_t aMessageSize) override { return _to SetMessageSize(aMessageSize); } \
  NS_IMETHOD GetMailboxAction(nsMailboxAction *aMailboxAction) override { return _to GetMailboxAction(aMailboxAction); } \
  NS_IMETHOD SetMailboxAction(nsMailboxAction aMailboxAction) override { 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_IMETHOD GetMailboxParser(nsIStreamListener * *aMailboxParser) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMailboxParser(aMailboxParser); } \
  NS_IMETHOD SetMailboxParser(nsIStreamListener *aMailboxParser) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMailboxParser(aMailboxParser); } \
  NS_IMETHOD GetMailboxCopyHandler(nsIStreamListener * *aMailboxCopyHandler) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMailboxCopyHandler(aMailboxCopyHandler); } \
  NS_IMETHOD SetMailboxCopyHandler(nsIStreamListener *aMailboxCopyHandler) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMailboxCopyHandler(aMailboxCopyHandler); } \
  NS_IMETHOD GetMessageKey(nsMsgKey *aMessageKey) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessageKey(aMessageKey); } \
  NS_IMETHOD SetMoveCopyMsgKeys(nsMsgKey *keysToFlag, int32_t numKeys) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMoveCopyMsgKeys(keysToFlag, numKeys); } \
  NS_IMETHOD GetMoveCopyMsgHdrForIndex(uint32_t msgIndex, nsIMsgDBHdr * *msgHdr) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMoveCopyMsgHdrForIndex(msgIndex, msgHdr); } \
  NS_IMETHOD GetNumMoveCopyMsgs(uint32_t *aNumMoveCopyMsgs) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNumMoveCopyMsgs(aNumMoveCopyMsgs); } \
  NS_IMETHOD GetCurMoveCopyMsgIndex(uint32_t *aCurMoveCopyMsgIndex) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCurMoveCopyMsgIndex(aCurMoveCopyMsgIndex); } \
  NS_IMETHOD SetCurMoveCopyMsgIndex(uint32_t aCurMoveCopyMsgIndex) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCurMoveCopyMsgIndex(aCurMoveCopyMsgIndex); } \
  NS_IMETHOD GetMessageSize(uint32_t *aMessageSize) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessageSize(aMessageSize); } \
  NS_IMETHOD SetMessageSize(uint32_t aMessageSize) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMessageSize(aMessageSize); } \
  NS_IMETHOD GetMailboxAction(nsMailboxAction *aMailboxAction) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMailboxAction(aMailboxAction); } \
  NS_IMETHOD SetMailboxAction(nsMailboxAction aMailboxAction) override { 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_ISUPPORTS(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, int32_t numKeys)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

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

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

/* attribute unsigned long messageSize; */
NS_IMETHODIMP nsMailboxUrl::GetMessageSize(uint32_t *aMessageSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMailboxUrl::SetMessageSize(uint32_t 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__ */
