/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM ../../../dist/idl/nsIMsgOfflineImapOperation.idl
 */

#ifndef __gen_nsIMsgOfflineImapOperation_h__
#define __gen_nsIMsgOfflineImapOperation_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
typedef uint16_t  imapMessageFlagsType;

typedef int32_t  nsOfflineImapOperationType;


/* starting interface:    nsIMsgOfflineImapOperation */
#define NS_IMSGOFFLINEIMAPOPERATION_IID_STR "b5229a55-22bb-444b-be92-13d719353828"

#define NS_IMSGOFFLINEIMAPOPERATION_IID \
  {0xb5229a55, 0x22bb, 0x444b, \
    { 0xbe, 0x92, 0x13, 0xd7, 0x19, 0x35, 0x38, 0x28 }}

class NS_NO_VTABLE nsIMsgOfflineImapOperation : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMSGOFFLINEIMAPOPERATION_IID)

  enum {
    kFlagsChanged = 1,
    kMsgMoved = 2,
    kMsgCopy = 4,
    kMoveResult = 8,
    kAppendDraft = 16,
    kAddedHeader = 32,
    kDeletedMsg = 64,
    kMsgMarkedDeleted = 128,
    kAppendTemplate = 256,
    kDeleteAllMsgs = 512,
    kAddKeywords = 1024,
    kRemoveKeywords = 2048
  };

  /* attribute nsOfflineImapOperationType operation; */
  NS_IMETHOD GetOperation(nsOfflineImapOperationType *aOperation) = 0;
  NS_IMETHOD SetOperation(nsOfflineImapOperationType aOperation) = 0;

  /* void clearOperation (in nsOfflineImapOperationType operation); */
  NS_IMETHOD ClearOperation(nsOfflineImapOperationType operation) = 0;

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

  /* attribute nsMsgKey srcMessageKey; */
  NS_IMETHOD GetSrcMessageKey(nsMsgKey *aSrcMessageKey) = 0;
  NS_IMETHOD SetSrcMessageKey(nsMsgKey aSrcMessageKey) = 0;

  /* attribute imapMessageFlagsType flagOperation; */
  NS_IMETHOD GetFlagOperation(imapMessageFlagsType *aFlagOperation) = 0;
  NS_IMETHOD SetFlagOperation(imapMessageFlagsType aFlagOperation) = 0;

  /* attribute imapMessageFlagsType newFlags; */
  NS_IMETHOD GetNewFlags(imapMessageFlagsType *aNewFlags) = 0;
  NS_IMETHOD SetNewFlags(imapMessageFlagsType aNewFlags) = 0;

  /* attribute string destinationFolderURI; */
  NS_IMETHOD GetDestinationFolderURI(char * *aDestinationFolderURI) = 0;
  NS_IMETHOD SetDestinationFolderURI(const char * aDestinationFolderURI) = 0;

  /* attribute string sourceFolderURI; */
  NS_IMETHOD GetSourceFolderURI(char * *aSourceFolderURI) = 0;
  NS_IMETHOD SetSourceFolderURI(const char * aSourceFolderURI) = 0;

  /* void addKeywordToAdd (in string aKeyword); */
  NS_IMETHOD AddKeywordToAdd(const char * aKeyword) = 0;

  /* void addKeywordToRemove (in string aKeyword); */
  NS_IMETHOD AddKeywordToRemove(const char * aKeyword) = 0;

  /* readonly attribute string keywordsToAdd; */
  NS_IMETHOD GetKeywordsToAdd(char * *aKeywordsToAdd) = 0;

  /* readonly attribute string keywordsToRemove; */
  NS_IMETHOD GetKeywordsToRemove(char * *aKeywordsToRemove) = 0;

  /* readonly attribute long numberOfCopies; */
  NS_IMETHOD GetNumberOfCopies(int32_t *aNumberOfCopies) = 0;

  /* void addMessageCopyOperation (in string destinationBox); */
  NS_IMETHOD AddMessageCopyOperation(const char * destinationBox) = 0;

  /* string getCopyDestination (in long copyIndex); */
  NS_IMETHOD GetCopyDestination(int32_t copyIndex, char * *_retval) = 0;

  /* attribute unsigned long msgSize; */
  NS_IMETHOD GetMsgSize(uint32_t *aMsgSize) = 0;
  NS_IMETHOD SetMsgSize(uint32_t aMsgSize) = 0;

  /* attribute boolean playingBack; */
  NS_IMETHOD GetPlayingBack(bool *aPlayingBack) = 0;
  NS_IMETHOD SetPlayingBack(bool aPlayingBack) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMsgOfflineImapOperation, NS_IMSGOFFLINEIMAPOPERATION_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGOFFLINEIMAPOPERATION \
  NS_IMETHOD GetOperation(nsOfflineImapOperationType *aOperation) override; \
  NS_IMETHOD SetOperation(nsOfflineImapOperationType aOperation) override; \
  NS_IMETHOD ClearOperation(nsOfflineImapOperationType operation) override; \
  NS_IMETHOD GetMessageKey(nsMsgKey *aMessageKey) override; \
  NS_IMETHOD SetMessageKey(nsMsgKey aMessageKey) override; \
  NS_IMETHOD GetSrcMessageKey(nsMsgKey *aSrcMessageKey) override; \
  NS_IMETHOD SetSrcMessageKey(nsMsgKey aSrcMessageKey) override; \
  NS_IMETHOD GetFlagOperation(imapMessageFlagsType *aFlagOperation) override; \
  NS_IMETHOD SetFlagOperation(imapMessageFlagsType aFlagOperation) override; \
  NS_IMETHOD GetNewFlags(imapMessageFlagsType *aNewFlags) override; \
  NS_IMETHOD SetNewFlags(imapMessageFlagsType aNewFlags) override; \
  NS_IMETHOD GetDestinationFolderURI(char * *aDestinationFolderURI) override; \
  NS_IMETHOD SetDestinationFolderURI(const char * aDestinationFolderURI) override; \
  NS_IMETHOD GetSourceFolderURI(char * *aSourceFolderURI) override; \
  NS_IMETHOD SetSourceFolderURI(const char * aSourceFolderURI) override; \
  NS_IMETHOD AddKeywordToAdd(const char * aKeyword) override; \
  NS_IMETHOD AddKeywordToRemove(const char * aKeyword) override; \
  NS_IMETHOD GetKeywordsToAdd(char * *aKeywordsToAdd) override; \
  NS_IMETHOD GetKeywordsToRemove(char * *aKeywordsToRemove) override; \
  NS_IMETHOD GetNumberOfCopies(int32_t *aNumberOfCopies) override; \
  NS_IMETHOD AddMessageCopyOperation(const char * destinationBox) override; \
  NS_IMETHOD GetCopyDestination(int32_t copyIndex, char * *_retval) override; \
  NS_IMETHOD GetMsgSize(uint32_t *aMsgSize) override; \
  NS_IMETHOD SetMsgSize(uint32_t aMsgSize) override; \
  NS_IMETHOD GetPlayingBack(bool *aPlayingBack) override; \
  NS_IMETHOD SetPlayingBack(bool aPlayingBack) override; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGOFFLINEIMAPOPERATION(_to) \
  NS_IMETHOD GetOperation(nsOfflineImapOperationType *aOperation) override { return _to GetOperation(aOperation); } \
  NS_IMETHOD SetOperation(nsOfflineImapOperationType aOperation) override { return _to SetOperation(aOperation); } \
  NS_IMETHOD ClearOperation(nsOfflineImapOperationType operation) override { return _to ClearOperation(operation); } \
  NS_IMETHOD GetMessageKey(nsMsgKey *aMessageKey) override { return _to GetMessageKey(aMessageKey); } \
  NS_IMETHOD SetMessageKey(nsMsgKey aMessageKey) override { return _to SetMessageKey(aMessageKey); } \
  NS_IMETHOD GetSrcMessageKey(nsMsgKey *aSrcMessageKey) override { return _to GetSrcMessageKey(aSrcMessageKey); } \
  NS_IMETHOD SetSrcMessageKey(nsMsgKey aSrcMessageKey) override { return _to SetSrcMessageKey(aSrcMessageKey); } \
  NS_IMETHOD GetFlagOperation(imapMessageFlagsType *aFlagOperation) override { return _to GetFlagOperation(aFlagOperation); } \
  NS_IMETHOD SetFlagOperation(imapMessageFlagsType aFlagOperation) override { return _to SetFlagOperation(aFlagOperation); } \
  NS_IMETHOD GetNewFlags(imapMessageFlagsType *aNewFlags) override { return _to GetNewFlags(aNewFlags); } \
  NS_IMETHOD SetNewFlags(imapMessageFlagsType aNewFlags) override { return _to SetNewFlags(aNewFlags); } \
  NS_IMETHOD GetDestinationFolderURI(char * *aDestinationFolderURI) override { return _to GetDestinationFolderURI(aDestinationFolderURI); } \
  NS_IMETHOD SetDestinationFolderURI(const char * aDestinationFolderURI) override { return _to SetDestinationFolderURI(aDestinationFolderURI); } \
  NS_IMETHOD GetSourceFolderURI(char * *aSourceFolderURI) override { return _to GetSourceFolderURI(aSourceFolderURI); } \
  NS_IMETHOD SetSourceFolderURI(const char * aSourceFolderURI) override { return _to SetSourceFolderURI(aSourceFolderURI); } \
  NS_IMETHOD AddKeywordToAdd(const char * aKeyword) override { return _to AddKeywordToAdd(aKeyword); } \
  NS_IMETHOD AddKeywordToRemove(const char * aKeyword) override { return _to AddKeywordToRemove(aKeyword); } \
  NS_IMETHOD GetKeywordsToAdd(char * *aKeywordsToAdd) override { return _to GetKeywordsToAdd(aKeywordsToAdd); } \
  NS_IMETHOD GetKeywordsToRemove(char * *aKeywordsToRemove) override { return _to GetKeywordsToRemove(aKeywordsToRemove); } \
  NS_IMETHOD GetNumberOfCopies(int32_t *aNumberOfCopies) override { return _to GetNumberOfCopies(aNumberOfCopies); } \
  NS_IMETHOD AddMessageCopyOperation(const char * destinationBox) override { return _to AddMessageCopyOperation(destinationBox); } \
  NS_IMETHOD GetCopyDestination(int32_t copyIndex, char * *_retval) override { return _to GetCopyDestination(copyIndex, _retval); } \
  NS_IMETHOD GetMsgSize(uint32_t *aMsgSize) override { return _to GetMsgSize(aMsgSize); } \
  NS_IMETHOD SetMsgSize(uint32_t aMsgSize) override { return _to SetMsgSize(aMsgSize); } \
  NS_IMETHOD GetPlayingBack(bool *aPlayingBack) override { return _to GetPlayingBack(aPlayingBack); } \
  NS_IMETHOD SetPlayingBack(bool aPlayingBack) override { return _to SetPlayingBack(aPlayingBack); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGOFFLINEIMAPOPERATION(_to) \
  NS_IMETHOD GetOperation(nsOfflineImapOperationType *aOperation) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOperation(aOperation); } \
  NS_IMETHOD SetOperation(nsOfflineImapOperationType aOperation) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetOperation(aOperation); } \
  NS_IMETHOD ClearOperation(nsOfflineImapOperationType operation) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ClearOperation(operation); } \
  NS_IMETHOD GetMessageKey(nsMsgKey *aMessageKey) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessageKey(aMessageKey); } \
  NS_IMETHOD SetMessageKey(nsMsgKey aMessageKey) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMessageKey(aMessageKey); } \
  NS_IMETHOD GetSrcMessageKey(nsMsgKey *aSrcMessageKey) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSrcMessageKey(aSrcMessageKey); } \
  NS_IMETHOD SetSrcMessageKey(nsMsgKey aSrcMessageKey) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSrcMessageKey(aSrcMessageKey); } \
  NS_IMETHOD GetFlagOperation(imapMessageFlagsType *aFlagOperation) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFlagOperation(aFlagOperation); } \
  NS_IMETHOD SetFlagOperation(imapMessageFlagsType aFlagOperation) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFlagOperation(aFlagOperation); } \
  NS_IMETHOD GetNewFlags(imapMessageFlagsType *aNewFlags) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNewFlags(aNewFlags); } \
  NS_IMETHOD SetNewFlags(imapMessageFlagsType aNewFlags) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNewFlags(aNewFlags); } \
  NS_IMETHOD GetDestinationFolderURI(char * *aDestinationFolderURI) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDestinationFolderURI(aDestinationFolderURI); } \
  NS_IMETHOD SetDestinationFolderURI(const char * aDestinationFolderURI) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDestinationFolderURI(aDestinationFolderURI); } \
  NS_IMETHOD GetSourceFolderURI(char * *aSourceFolderURI) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSourceFolderURI(aSourceFolderURI); } \
  NS_IMETHOD SetSourceFolderURI(const char * aSourceFolderURI) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSourceFolderURI(aSourceFolderURI); } \
  NS_IMETHOD AddKeywordToAdd(const char * aKeyword) override { return !_to ? NS_ERROR_NULL_POINTER : _to->AddKeywordToAdd(aKeyword); } \
  NS_IMETHOD AddKeywordToRemove(const char * aKeyword) override { return !_to ? NS_ERROR_NULL_POINTER : _to->AddKeywordToRemove(aKeyword); } \
  NS_IMETHOD GetKeywordsToAdd(char * *aKeywordsToAdd) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetKeywordsToAdd(aKeywordsToAdd); } \
  NS_IMETHOD GetKeywordsToRemove(char * *aKeywordsToRemove) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetKeywordsToRemove(aKeywordsToRemove); } \
  NS_IMETHOD GetNumberOfCopies(int32_t *aNumberOfCopies) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNumberOfCopies(aNumberOfCopies); } \
  NS_IMETHOD AddMessageCopyOperation(const char * destinationBox) override { return !_to ? NS_ERROR_NULL_POINTER : _to->AddMessageCopyOperation(destinationBox); } \
  NS_IMETHOD GetCopyDestination(int32_t copyIndex, char * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCopyDestination(copyIndex, _retval); } \
  NS_IMETHOD GetMsgSize(uint32_t *aMsgSize) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMsgSize(aMsgSize); } \
  NS_IMETHOD SetMsgSize(uint32_t aMsgSize) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMsgSize(aMsgSize); } \
  NS_IMETHOD GetPlayingBack(bool *aPlayingBack) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPlayingBack(aPlayingBack); } \
  NS_IMETHOD SetPlayingBack(bool aPlayingBack) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPlayingBack(aPlayingBack); } 

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

/* Header file */
class nsMsgOfflineImapOperation : public nsIMsgOfflineImapOperation
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGOFFLINEIMAPOPERATION

  nsMsgOfflineImapOperation();

private:
  ~nsMsgOfflineImapOperation();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsMsgOfflineImapOperation, nsIMsgOfflineImapOperation)

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

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

/* attribute nsOfflineImapOperationType operation; */
NS_IMETHODIMP nsMsgOfflineImapOperation::GetOperation(nsOfflineImapOperationType *aOperation)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgOfflineImapOperation::SetOperation(nsOfflineImapOperationType aOperation)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void clearOperation (in nsOfflineImapOperationType operation); */
NS_IMETHODIMP nsMsgOfflineImapOperation::ClearOperation(nsOfflineImapOperationType operation)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

/* attribute nsMsgKey srcMessageKey; */
NS_IMETHODIMP nsMsgOfflineImapOperation::GetSrcMessageKey(nsMsgKey *aSrcMessageKey)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgOfflineImapOperation::SetSrcMessageKey(nsMsgKey aSrcMessageKey)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute imapMessageFlagsType flagOperation; */
NS_IMETHODIMP nsMsgOfflineImapOperation::GetFlagOperation(imapMessageFlagsType *aFlagOperation)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgOfflineImapOperation::SetFlagOperation(imapMessageFlagsType aFlagOperation)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute imapMessageFlagsType newFlags; */
NS_IMETHODIMP nsMsgOfflineImapOperation::GetNewFlags(imapMessageFlagsType *aNewFlags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgOfflineImapOperation::SetNewFlags(imapMessageFlagsType aNewFlags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string destinationFolderURI; */
NS_IMETHODIMP nsMsgOfflineImapOperation::GetDestinationFolderURI(char * *aDestinationFolderURI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgOfflineImapOperation::SetDestinationFolderURI(const char * aDestinationFolderURI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string sourceFolderURI; */
NS_IMETHODIMP nsMsgOfflineImapOperation::GetSourceFolderURI(char * *aSourceFolderURI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgOfflineImapOperation::SetSourceFolderURI(const char * aSourceFolderURI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addKeywordToAdd (in string aKeyword); */
NS_IMETHODIMP nsMsgOfflineImapOperation::AddKeywordToAdd(const char * aKeyword)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addKeywordToRemove (in string aKeyword); */
NS_IMETHODIMP nsMsgOfflineImapOperation::AddKeywordToRemove(const char * aKeyword)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute string keywordsToAdd; */
NS_IMETHODIMP nsMsgOfflineImapOperation::GetKeywordsToAdd(char * *aKeywordsToAdd)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute string keywordsToRemove; */
NS_IMETHODIMP nsMsgOfflineImapOperation::GetKeywordsToRemove(char * *aKeywordsToRemove)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long numberOfCopies; */
NS_IMETHODIMP nsMsgOfflineImapOperation::GetNumberOfCopies(int32_t *aNumberOfCopies)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addMessageCopyOperation (in string destinationBox); */
NS_IMETHODIMP nsMsgOfflineImapOperation::AddMessageCopyOperation(const char * destinationBox)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* string getCopyDestination (in long copyIndex); */
NS_IMETHODIMP nsMsgOfflineImapOperation::GetCopyDestination(int32_t copyIndex, char * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long msgSize; */
NS_IMETHODIMP nsMsgOfflineImapOperation::GetMsgSize(uint32_t *aMsgSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgOfflineImapOperation::SetMsgSize(uint32_t aMsgSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean playingBack; */
NS_IMETHODIMP nsMsgOfflineImapOperation::GetPlayingBack(bool *aPlayingBack)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgOfflineImapOperation::SetPlayingBack(bool aPlayingBack)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIMsgOfflineImapOperation_h__ */
