/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM /tmp/comm-release/mailnews/compose/public/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_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(PRUnichar * *aMessage) = 0;
  NS_IMETHOD SetMessage(const PRUnichar * 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); \
  NS_IMETHOD SetProceeded(bool 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(bool *aProceeded) { return _to GetProceeded(aProceeded); } \
  NS_IMETHOD SetProceeded(bool 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(bool *aProceeded) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProceeded(aProceeded); } \
  NS_IMETHOD SetProceeded(bool 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();

private:
  ~nsMsgProcessReport();

protected:
  /* 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(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(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_DECLARE_STATIC_IID_ACCESSOR(NS_IMSGSENDREPORT_IID)

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

  /* 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 PRUnichar * 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); \
  NS_IMETHOD SetDeliveryMode(int32_t aDeliveryMode); \
  NS_IMETHOD GetCurrentProcess(int32_t *aCurrentProcess); \
  NS_IMETHOD SetCurrentProcess(int32_t aCurrentProcess); \
  NS_IMETHOD Reset(void); \
  NS_IMETHOD SetProceeded(int32_t process, bool proceeded); \
  NS_IMETHOD SetError(int32_t process, nsresult error, bool overwriteError); \
  NS_IMETHOD SetMessage(int32_t process, const PRUnichar * message, bool overwriteMessage); \
  NS_IMETHOD GetProcessReport(int32_t process, nsIMsgProcessReport * *_retval); \
  NS_IMETHOD 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) { return _to GetDeliveryMode(aDeliveryMode); } \
  NS_IMETHOD SetDeliveryMode(int32_t aDeliveryMode) { return _to SetDeliveryMode(aDeliveryMode); } \
  NS_IMETHOD GetCurrentProcess(int32_t *aCurrentProcess) { return _to GetCurrentProcess(aCurrentProcess); } \
  NS_IMETHOD SetCurrentProcess(int32_t aCurrentProcess) { return _to SetCurrentProcess(aCurrentProcess); } \
  NS_IMETHOD Reset(void) { return _to Reset(); } \
  NS_IMETHOD SetProceeded(int32_t process, bool proceeded) { return _to SetProceeded(process, proceeded); } \
  NS_IMETHOD SetError(int32_t process, nsresult error, bool overwriteError) { return _to SetError(process, error, overwriteError); } \
  NS_IMETHOD SetMessage(int32_t process, const PRUnichar * message, bool overwriteMessage) { return _to SetMessage(process, message, overwriteMessage); } \
  NS_IMETHOD GetProcessReport(int32_t process, nsIMsgProcessReport * *_retval) { return _to GetProcessReport(process, _retval); } \
  NS_IMETHOD DisplayReport(nsIPrompt *prompt, bool showErrorOnly, bool 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(int32_t *aDeliveryMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDeliveryMode(aDeliveryMode); } \
  NS_IMETHOD SetDeliveryMode(int32_t aDeliveryMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDeliveryMode(aDeliveryMode); } \
  NS_IMETHOD GetCurrentProcess(int32_t *aCurrentProcess) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCurrentProcess(aCurrentProcess); } \
  NS_IMETHOD SetCurrentProcess(int32_t 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(int32_t process, bool proceeded) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetProceeded(process, proceeded); } \
  NS_IMETHOD SetError(int32_t process, nsresult error, bool overwriteError) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetError(process, error, overwriteError); } \
  NS_IMETHOD SetMessage(int32_t process, const PRUnichar * message, bool overwriteMessage) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMessage(process, message, overwriteMessage); } \
  NS_IMETHOD GetProcessReport(int32_t process, nsIMsgProcessReport * *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProcessReport(process, _retval); } \
  NS_IMETHOD DisplayReport(nsIPrompt *prompt, bool showErrorOnly, bool 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();

private:
  ~nsMsgSendReport();

protected:
  /* 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(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 PRUnichar * 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__ */
