/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM 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 "2247c280-7f7f-11d5-9daa-994d49414e7c"

#define NS_IMSGPROCESSREPORT_IID \
  {0x2247c280, 0x7f7f, 0x11d5, \
    { 0x9d, 0xaa, 0x99, 0x4d, 0x49, 0x41, 0x4e, 0x7c }}

class NS_NO_VTABLE nsIMsgProcessReport : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IMSGPROCESSREPORT_IID)

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

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

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

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

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGPROCESSREPORT \
  NS_IMETHOD GetProceeded(PRBool *aProceeded); \
  NS_IMETHOD SetProceeded(PRBool aProceeded); \
  NS_IMETHOD GetError(nsresult *aError); \
  NS_IMETHOD SetError(nsresult aError); \
  NS_IMETHOD GetMessage(PRUnichar * *aMessage); \
  NS_IMETHOD SetMessage(const PRUnichar * aMessage); \
  NS_IMETHOD 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(PRBool *aProceeded) { return _to GetProceeded(aProceeded); } \
  NS_IMETHOD SetProceeded(PRBool aProceeded) { return _to SetProceeded(aProceeded); } \
  NS_IMETHOD GetError(nsresult *aError) { return _to GetError(aError); } \
  NS_IMETHOD SetError(nsresult aError) { return _to SetError(aError); } \
  NS_IMETHOD GetMessage(PRUnichar * *aMessage) { return _to GetMessage(aMessage); } \
  NS_IMETHOD SetMessage(const PRUnichar * aMessage) { return _to SetMessage(aMessage); } \
  NS_IMETHOD Reset(void) { 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(PRBool *aProceeded) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProceeded(aProceeded); } \
  NS_IMETHOD SetProceeded(PRBool aProceeded) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetProceeded(aProceeded); } \
  NS_IMETHOD GetError(nsresult *aError) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetError(aError); } \
  NS_IMETHOD SetError(nsresult aError) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetError(aError); } \
  NS_IMETHOD GetMessage(PRUnichar * *aMessage) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessage(aMessage); } \
  NS_IMETHOD SetMessage(const PRUnichar * aMessage) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMessage(aMessage); } \
  NS_IMETHOD Reset(void) { 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();
  virtual ~nsMsgProcessReport();
  /* additional members */
};

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

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

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

/* attribute boolean proceeded; */
NS_IMETHODIMP nsMsgProcessReport::GetProceeded(PRBool *aProceeded)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgProcessReport::SetProceeded(PRBool 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(PRUnichar * *aMessage)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgProcessReport::SetMessage(const PRUnichar * 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 "2247c281-7f7f-11d5-9daa-994d49414e7c"

#define NS_IMSGSENDREPORT_IID \
  {0x2247c281, 0x7f7f, 0x11d5, \
    { 0x9d, 0xaa, 0x99, 0x4d, 0x49, 0x41, 0x4e, 0x7c }}

class NS_NO_VTABLE nsIMsgSendReport : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IMSGSENDREPORT_IID)

  enum { process_Current = -1 };

  enum { process_BuildMessage = 0 };

  enum { process_NNTP = 1 };

  enum { process_SMTP = 2 };

  enum { process_Copy = 3 };

  enum { process_FCC = 4 };

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

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

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

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

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

  /* void setMessage (in long process, in wstring message, in boolean overwriteMessage); */
  NS_IMETHOD SetMessage(PRInt32 process, const PRUnichar *message, PRBool overwriteMessage) = 0;

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

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

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGSENDREPORT \
  NS_IMETHOD GetDeliveryMode(PRInt32 *aDeliveryMode); \
  NS_IMETHOD SetDeliveryMode(PRInt32 aDeliveryMode); \
  NS_IMETHOD GetCurrentProcess(PRInt32 *aCurrentProcess); \
  NS_IMETHOD SetCurrentProcess(PRInt32 aCurrentProcess); \
  NS_IMETHOD Reset(void); \
  NS_IMETHOD SetProceeded(PRInt32 process, PRBool proceeded); \
  NS_IMETHOD SetError(PRInt32 process, nsresult error, PRBool overwriteError); \
  NS_IMETHOD SetMessage(PRInt32 process, const PRUnichar *message, PRBool overwriteMessage); \
  NS_IMETHOD GetProcessReport(PRInt32 process, nsIMsgProcessReport **_retval); \
  NS_IMETHOD DisplayReport(nsIPrompt *prompt, PRBool showErrorOnly, PRBool 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(PRInt32 *aDeliveryMode) { return _to GetDeliveryMode(aDeliveryMode); } \
  NS_IMETHOD SetDeliveryMode(PRInt32 aDeliveryMode) { return _to SetDeliveryMode(aDeliveryMode); } \
  NS_IMETHOD GetCurrentProcess(PRInt32 *aCurrentProcess) { return _to GetCurrentProcess(aCurrentProcess); } \
  NS_IMETHOD SetCurrentProcess(PRInt32 aCurrentProcess) { return _to SetCurrentProcess(aCurrentProcess); } \
  NS_IMETHOD Reset(void) { return _to Reset(); } \
  NS_IMETHOD SetProceeded(PRInt32 process, PRBool proceeded) { return _to SetProceeded(process, proceeded); } \
  NS_IMETHOD SetError(PRInt32 process, nsresult error, PRBool overwriteError) { return _to SetError(process, error, overwriteError); } \
  NS_IMETHOD SetMessage(PRInt32 process, const PRUnichar *message, PRBool overwriteMessage) { return _to SetMessage(process, message, overwriteMessage); } \
  NS_IMETHOD GetProcessReport(PRInt32 process, nsIMsgProcessReport **_retval) { return _to GetProcessReport(process, _retval); } \
  NS_IMETHOD DisplayReport(nsIPrompt *prompt, PRBool showErrorOnly, PRBool dontShowReportTwice, nsresult *_retval) { 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(PRInt32 *aDeliveryMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDeliveryMode(aDeliveryMode); } \
  NS_IMETHOD SetDeliveryMode(PRInt32 aDeliveryMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDeliveryMode(aDeliveryMode); } \
  NS_IMETHOD GetCurrentProcess(PRInt32 *aCurrentProcess) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCurrentProcess(aCurrentProcess); } \
  NS_IMETHOD SetCurrentProcess(PRInt32 aCurrentProcess) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCurrentProcess(aCurrentProcess); } \
  NS_IMETHOD Reset(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Reset(); } \
  NS_IMETHOD SetProceeded(PRInt32 process, PRBool proceeded) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetProceeded(process, proceeded); } \
  NS_IMETHOD SetError(PRInt32 process, nsresult error, PRBool overwriteError) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetError(process, error, overwriteError); } \
  NS_IMETHOD SetMessage(PRInt32 process, const PRUnichar *message, PRBool overwriteMessage) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMessage(process, message, overwriteMessage); } \
  NS_IMETHOD GetProcessReport(PRInt32 process, nsIMsgProcessReport **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProcessReport(process, _retval); } \
  NS_IMETHOD DisplayReport(nsIPrompt *prompt, PRBool showErrorOnly, PRBool dontShowReportTwice, nsresult *_retval) { 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();
  virtual ~nsMsgSendReport();
  /* additional members */
};

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

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

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

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

/* attribute long currentProcess; */
NS_IMETHODIMP nsMsgSendReport::GetCurrentProcess(PRInt32 *aCurrentProcess)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgSendReport::SetCurrentProcess(PRInt32 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(PRInt32 process, PRBool proceeded)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

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

/* nsIMsgProcessReport getProcessReport (in long process); */
NS_IMETHODIMP nsMsgSendReport::GetProcessReport(PRInt32 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, PRBool showErrorOnly, PRBool dontShowReportTwice, nsresult *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIMsgSendReport_h__ */
