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

#ifndef __gen_nsIMsgSendReport_h__
#define __gen_nsIMsgSendReport_h__


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

#ifndef __gen_nsIPrompt_h__
#include "nsIPrompt.h"
#endif

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif

/* starting interface:    nsIMsgProcessReport */
#define NS_IMSGPROCESSREPORT_IID_STR "2ec81175-bc65-44b9-ba87-462bc3f938db"

#define NS_IMSGPROCESSREPORT_IID \
  {0x2ec81175, 0xbc65, 0x44b9, \
    { 0xba, 0x87, 0x46, 0x2b, 0xc3, 0xf9, 0x38, 0xdb }}

class NS_NO_VTABLE nsIMsgProcessReport : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMSGPROCESSREPORT_IID)

  /* attribute boolean proceeded; */
  NS_IMETHOD GetProceeded(bool *aProceeded) = 0;
  NS_IMETHOD SetProceeded(bool aProceeded) = 0;

  /* attribute nsresult error; */
  NS_IMETHOD GetError(nsresult *aError) = 0;
  NS_IMETHOD SetError(nsresult aError) = 0;

  /* attribute wstring message; */
  NS_IMETHOD GetMessage(char16_t * *aMessage) = 0;
  NS_IMETHOD SetMessage(const char16_t * aMessage) = 0;

  /* void reset (); */
  NS_IMETHOD Reset(void) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMsgProcessReport, NS_IMSGPROCESSREPORT_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGPROCESSREPORT \
  NS_IMETHOD GetProceeded(bool *aProceeded) override; \
  NS_IMETHOD SetProceeded(bool aProceeded) override; \
  NS_IMETHOD GetError(nsresult *aError) override; \
  NS_IMETHOD SetError(nsresult aError) override; \
  NS_IMETHOD GetMessage(char16_t * *aMessage) override; \
  NS_IMETHOD SetMessage(const char16_t * aMessage) override; \
  NS_IMETHOD Reset(void) 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_NSIMSGPROCESSREPORT \
  NS_METHOD GetProceeded(bool *aProceeded); \
  NS_METHOD SetProceeded(bool aProceeded); \
  NS_METHOD GetError(nsresult *aError); \
  NS_METHOD SetError(nsresult aError); \
  NS_METHOD GetMessage(char16_t * *aMessage); \
  NS_METHOD SetMessage(const char16_t * aMessage); \
  NS_METHOD Reset(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGPROCESSREPORT(_to) \
  NS_IMETHOD GetProceeded(bool *aProceeded) override { return _to GetProceeded(aProceeded); } \
  NS_IMETHOD SetProceeded(bool aProceeded) override { return _to SetProceeded(aProceeded); } \
  NS_IMETHOD GetError(nsresult *aError) override { return _to GetError(aError); } \
  NS_IMETHOD SetError(nsresult aError) override { return _to SetError(aError); } \
  NS_IMETHOD GetMessage(char16_t * *aMessage) override { return _to GetMessage(aMessage); } \
  NS_IMETHOD SetMessage(const char16_t * aMessage) override { return _to SetMessage(aMessage); } \
  NS_IMETHOD Reset(void) override { return _to Reset(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGPROCESSREPORT(_to) \
  NS_IMETHOD GetProceeded(bool *aProceeded) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProceeded(aProceeded); } \
  NS_IMETHOD SetProceeded(bool aProceeded) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetProceeded(aProceeded); } \
  NS_IMETHOD GetError(nsresult *aError) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetError(aError); } \
  NS_IMETHOD SetError(nsresult aError) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetError(aError); } \
  NS_IMETHOD GetMessage(char16_t * *aMessage) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessage(aMessage); } \
  NS_IMETHOD SetMessage(const char16_t * aMessage) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMessage(aMessage); } \
  NS_IMETHOD Reset(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Reset(); } 

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

/* Header file */
class nsMsgProcessReport : public nsIMsgProcessReport
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGPROCESSREPORT

  nsMsgProcessReport();

private:
  ~nsMsgProcessReport();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsMsgProcessReport, nsIMsgProcessReport)

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

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

/* attribute boolean proceeded; */
NS_IMETHODIMP nsMsgProcessReport::GetProceeded(bool *aProceeded)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgProcessReport::SetProceeded(bool aProceeded)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsresult error; */
NS_IMETHODIMP nsMsgProcessReport::GetError(nsresult *aError)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgProcessReport::SetError(nsresult aError)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring message; */
NS_IMETHODIMP nsMsgProcessReport::GetMessage(char16_t * *aMessage)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgProcessReport::SetMessage(const char16_t * aMessage)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void reset (); */
NS_IMETHODIMP nsMsgProcessReport::Reset()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    nsIMsgSendReport */
#define NS_IMSGSENDREPORT_IID_STR "428c5bde-29f5-4bfe-830a-ec795a1c2975"

#define NS_IMSGSENDREPORT_IID \
  {0x428c5bde, 0x29f5, 0x4bfe, \
    { 0x83, 0x0a, 0xec, 0x79, 0x5a, 0x1c, 0x29, 0x75 }}

class NS_NO_VTABLE nsIMsgSendReport : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMSGSENDREPORT_IID)

  enum {
    process_Current = -1,
    process_BuildMessage = 0,
    process_NNTP = 1,
    process_SMTP = 2,
    process_Copy = 3,
    process_Filter = 4,
    process_FCC = 5
  };

  /* attribute long deliveryMode; */
  NS_IMETHOD GetDeliveryMode(int32_t *aDeliveryMode) = 0;
  NS_IMETHOD SetDeliveryMode(int32_t aDeliveryMode) = 0;

  /* attribute long currentProcess; */
  NS_IMETHOD GetCurrentProcess(int32_t *aCurrentProcess) = 0;
  NS_IMETHOD SetCurrentProcess(int32_t aCurrentProcess) = 0;

  /* void reset (); */
  NS_IMETHOD Reset(void) = 0;

  /* void setProceeded (in long process, in boolean proceeded); */
  NS_IMETHOD SetProceeded(int32_t process, bool proceeded) = 0;

  /* void setError (in long process, in nsresult error, in boolean overwriteError); */
  NS_IMETHOD SetError(int32_t process, nsresult error, bool overwriteError) = 0;

  /* void setMessage (in long process, in wstring message, in boolean overwriteMessage); */
  NS_IMETHOD SetMessage(int32_t process, const char16_t * message, bool overwriteMessage) = 0;

  /* nsIMsgProcessReport getProcessReport (in long process); */
  NS_IMETHOD GetProcessReport(int32_t process, nsIMsgProcessReport * *_retval) = 0;

  /* nsresult displayReport (in nsIPrompt prompt, in boolean showErrorOnly, in boolean dontShowReportTwice); */
  NS_IMETHOD DisplayReport(nsIPrompt *prompt, bool showErrorOnly, bool dontShowReportTwice, nsresult *_retval) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMsgSendReport, NS_IMSGSENDREPORT_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGSENDREPORT \
  NS_IMETHOD GetDeliveryMode(int32_t *aDeliveryMode) override; \
  NS_IMETHOD SetDeliveryMode(int32_t aDeliveryMode) override; \
  NS_IMETHOD GetCurrentProcess(int32_t *aCurrentProcess) override; \
  NS_IMETHOD SetCurrentProcess(int32_t aCurrentProcess) override; \
  NS_IMETHOD Reset(void) override; \
  NS_IMETHOD SetProceeded(int32_t process, bool proceeded) override; \
  NS_IMETHOD SetError(int32_t process, nsresult error, bool overwriteError) override; \
  NS_IMETHOD SetMessage(int32_t process, const char16_t * message, bool overwriteMessage) override; \
  NS_IMETHOD GetProcessReport(int32_t process, nsIMsgProcessReport * *_retval) override; \
  NS_IMETHOD DisplayReport(nsIPrompt *prompt, bool showErrorOnly, bool dontShowReportTwice, nsresult *_retval) 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_NSIMSGSENDREPORT \
  NS_METHOD GetDeliveryMode(int32_t *aDeliveryMode); \
  NS_METHOD SetDeliveryMode(int32_t aDeliveryMode); \
  NS_METHOD GetCurrentProcess(int32_t *aCurrentProcess); \
  NS_METHOD SetCurrentProcess(int32_t aCurrentProcess); \
  NS_METHOD Reset(void); \
  NS_METHOD SetProceeded(int32_t process, bool proceeded); \
  NS_METHOD SetError(int32_t process, nsresult error, bool overwriteError); \
  NS_METHOD SetMessage(int32_t process, const char16_t * message, bool overwriteMessage); \
  NS_METHOD GetProcessReport(int32_t process, nsIMsgProcessReport * *_retval); \
  NS_METHOD DisplayReport(nsIPrompt *prompt, bool showErrorOnly, bool dontShowReportTwice, nsresult *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGSENDREPORT(_to) \
  NS_IMETHOD GetDeliveryMode(int32_t *aDeliveryMode) override { return _to GetDeliveryMode(aDeliveryMode); } \
  NS_IMETHOD SetDeliveryMode(int32_t aDeliveryMode) override { return _to SetDeliveryMode(aDeliveryMode); } \
  NS_IMETHOD GetCurrentProcess(int32_t *aCurrentProcess) override { return _to GetCurrentProcess(aCurrentProcess); } \
  NS_IMETHOD SetCurrentProcess(int32_t aCurrentProcess) override { return _to SetCurrentProcess(aCurrentProcess); } \
  NS_IMETHOD Reset(void) override { return _to Reset(); } \
  NS_IMETHOD SetProceeded(int32_t process, bool proceeded) override { return _to SetProceeded(process, proceeded); } \
  NS_IMETHOD SetError(int32_t process, nsresult error, bool overwriteError) override { return _to SetError(process, error, overwriteError); } \
  NS_IMETHOD SetMessage(int32_t process, const char16_t * message, bool overwriteMessage) override { return _to SetMessage(process, message, overwriteMessage); } \
  NS_IMETHOD GetProcessReport(int32_t process, nsIMsgProcessReport * *_retval) override { return _to GetProcessReport(process, _retval); } \
  NS_IMETHOD DisplayReport(nsIPrompt *prompt, bool showErrorOnly, bool dontShowReportTwice, nsresult *_retval) override { return _to DisplayReport(prompt, showErrorOnly, dontShowReportTwice, _retval); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGSENDREPORT(_to) \
  NS_IMETHOD GetDeliveryMode(int32_t *aDeliveryMode) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDeliveryMode(aDeliveryMode); } \
  NS_IMETHOD SetDeliveryMode(int32_t aDeliveryMode) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDeliveryMode(aDeliveryMode); } \
  NS_IMETHOD GetCurrentProcess(int32_t *aCurrentProcess) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCurrentProcess(aCurrentProcess); } \
  NS_IMETHOD SetCurrentProcess(int32_t aCurrentProcess) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCurrentProcess(aCurrentProcess); } \
  NS_IMETHOD Reset(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Reset(); } \
  NS_IMETHOD SetProceeded(int32_t process, bool proceeded) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetProceeded(process, proceeded); } \
  NS_IMETHOD SetError(int32_t process, nsresult error, bool overwriteError) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetError(process, error, overwriteError); } \
  NS_IMETHOD SetMessage(int32_t process, const char16_t * message, bool overwriteMessage) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMessage(process, message, overwriteMessage); } \
  NS_IMETHOD GetProcessReport(int32_t process, nsIMsgProcessReport * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProcessReport(process, _retval); } \
  NS_IMETHOD DisplayReport(nsIPrompt *prompt, bool showErrorOnly, bool dontShowReportTwice, nsresult *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->DisplayReport(prompt, showErrorOnly, dontShowReportTwice, _retval); } 

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

/* Header file */
class nsMsgSendReport : public nsIMsgSendReport
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGSENDREPORT

  nsMsgSendReport();

private:
  ~nsMsgSendReport();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsMsgSendReport, nsIMsgSendReport)

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

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

/* attribute long deliveryMode; */
NS_IMETHODIMP nsMsgSendReport::GetDeliveryMode(int32_t *aDeliveryMode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgSendReport::SetDeliveryMode(int32_t aDeliveryMode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute long currentProcess; */
NS_IMETHODIMP nsMsgSendReport::GetCurrentProcess(int32_t *aCurrentProcess)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgSendReport::SetCurrentProcess(int32_t aCurrentProcess)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void reset (); */
NS_IMETHODIMP nsMsgSendReport::Reset()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setProceeded (in long process, in boolean proceeded); */
NS_IMETHODIMP nsMsgSendReport::SetProceeded(int32_t process, bool proceeded)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setError (in long process, in nsresult error, in boolean overwriteError); */
NS_IMETHODIMP nsMsgSendReport::SetError(int32_t process, nsresult error, bool overwriteError)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setMessage (in long process, in wstring message, in boolean overwriteMessage); */
NS_IMETHODIMP nsMsgSendReport::SetMessage(int32_t process, const char16_t * message, bool overwriteMessage)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIMsgProcessReport getProcessReport (in long process); */
NS_IMETHODIMP nsMsgSendReport::GetProcessReport(int32_t process, nsIMsgProcessReport * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsresult displayReport (in nsIPrompt prompt, in boolean showErrorOnly, in boolean dontShowReportTwice); */
NS_IMETHODIMP nsMsgSendReport::DisplayReport(nsIPrompt *prompt, bool showErrorOnly, bool dontShowReportTwice, nsresult *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIMsgSendReport_h__ */
