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

#ifndef __gen_nsIMimeMiscStatus_h__
#define __gen_nsIMimeMiscStatus_h__


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

#ifndef __gen_nsrootidl_h__
#include "nsrootidl.h"
#endif

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
class nsIOutputStream; /* forward declaration */

class nsIInputStream; /* forward declaration */

class nsIURI; /* forward declaration */

class nsIStreamListener; /* forward declaration */

class nsIChannel; /* forward declaration */

class nsIMsgMailNewsUrl; /* forward declaration */

class nsIUTF8StringEnumerator; /* forward declaration */

class nsIMsgDBHdr; /* forward declaration */

class nsIWritablePropertyBag2; /* forward declaration */


/* starting interface:    nsIMimeMiscStatus */
#define NS_IMIMEMISCSTATUS_IID_STR "4644fb25-5255-11d3-82b8-444553540002"

#define NS_IMIMEMISCSTATUS_IID \
  {0x4644fb25, 0x5255, 0x11d3, \
    { 0x82, 0xb8, 0x44, 0x45, 0x53, 0x54, 0x00, 0x02 }}

class NS_NO_VTABLE nsIMimeMiscStatus : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IMIMEMISCSTATUS_IID)

  /* string GetWindowXULandJS (); */
  NS_IMETHOD GetWindowXULandJS(char **_retval) = 0;

  /* string GetGlobalXULandJS (); */
  NS_IMETHOD GetGlobalXULandJS(char **_retval) = 0;

  /* string GetIndividualXUL (in string aName, in string aHeader, in string aEmail); */
  NS_IMETHOD GetIndividualXUL(const char *aName, const char *aHeader, const char *aEmail, char **_retval) = 0;

  /* long GetMiscStatus (in string aName, in string aEmail); */
  NS_IMETHOD GetMiscStatus(const char *aName, const char *aEmail, PRInt32 *_retval) = 0;

  /* string GetImageURL (in long aStatus); */
  NS_IMETHOD GetImageURL(PRInt32 aStatus, char **_retval) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMIMEMISCSTATUS \
  NS_IMETHOD GetWindowXULandJS(char **_retval); \
  NS_IMETHOD GetGlobalXULandJS(char **_retval); \
  NS_IMETHOD GetIndividualXUL(const char *aName, const char *aHeader, const char *aEmail, char **_retval); \
  NS_IMETHOD GetMiscStatus(const char *aName, const char *aEmail, PRInt32 *_retval); \
  NS_IMETHOD GetImageURL(PRInt32 aStatus, char **_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMIMEMISCSTATUS(_to) \
  NS_IMETHOD GetWindowXULandJS(char **_retval) { return _to GetWindowXULandJS(_retval); } \
  NS_IMETHOD GetGlobalXULandJS(char **_retval) { return _to GetGlobalXULandJS(_retval); } \
  NS_IMETHOD GetIndividualXUL(const char *aName, const char *aHeader, const char *aEmail, char **_retval) { return _to GetIndividualXUL(aName, aHeader, aEmail, _retval); } \
  NS_IMETHOD GetMiscStatus(const char *aName, const char *aEmail, PRInt32 *_retval) { return _to GetMiscStatus(aName, aEmail, _retval); } \
  NS_IMETHOD GetImageURL(PRInt32 aStatus, char **_retval) { return _to GetImageURL(aStatus, _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_NSIMIMEMISCSTATUS(_to) \
  NS_IMETHOD GetWindowXULandJS(char **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWindowXULandJS(_retval); } \
  NS_IMETHOD GetGlobalXULandJS(char **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGlobalXULandJS(_retval); } \
  NS_IMETHOD GetIndividualXUL(const char *aName, const char *aHeader, const char *aEmail, char **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIndividualXUL(aName, aHeader, aEmail, _retval); } \
  NS_IMETHOD GetMiscStatus(const char *aName, const char *aEmail, PRInt32 *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMiscStatus(aName, aEmail, _retval); } \
  NS_IMETHOD GetImageURL(PRInt32 aStatus, char **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetImageURL(aStatus, _retval); } 

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

/* Header file */
class nsMimeMiscStatus : public nsIMimeMiscStatus
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMIMEMISCSTATUS

  nsMimeMiscStatus();

private:
  ~nsMimeMiscStatus();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMimeMiscStatus, nsIMimeMiscStatus)

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

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

/* string GetWindowXULandJS (); */
NS_IMETHODIMP nsMimeMiscStatus::GetWindowXULandJS(char **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* string GetGlobalXULandJS (); */
NS_IMETHODIMP nsMimeMiscStatus::GetGlobalXULandJS(char **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* string GetIndividualXUL (in string aName, in string aHeader, in string aEmail); */
NS_IMETHODIMP nsMimeMiscStatus::GetIndividualXUL(const char *aName, const char *aHeader, const char *aEmail, char **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* long GetMiscStatus (in string aName, in string aEmail); */
NS_IMETHODIMP nsMimeMiscStatus::GetMiscStatus(const char *aName, const char *aEmail, PRInt32 *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* string GetImageURL (in long aStatus); */
NS_IMETHODIMP nsMimeMiscStatus::GetImageURL(PRInt32 aStatus, char **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    nsIMsgHeaderSink */
#define NS_IMSGHEADERSINK_IID_STR "c3c4473c-fe01-4afc-bf91-c811baebef63"

#define NS_IMSGHEADERSINK_IID \
  {0xc3c4473c, 0xfe01, 0x4afc, \
    { 0xbf, 0x91, 0xc8, 0x11, 0xba, 0xeb, 0xef, 0x63 }}

class NS_NO_VTABLE nsIMsgHeaderSink : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IMSGHEADERSINK_IID)

  /* void processHeaders (in nsIUTF8StringEnumerator aHeaderNames, in nsIUTF8StringEnumerator aHeaderValues, in boolean dontCollectAddress); */
  NS_IMETHOD ProcessHeaders(nsIUTF8StringEnumerator *aHeaderNames, nsIUTF8StringEnumerator *aHeaderValues, PRBool dontCollectAddress) = 0;

  /* void handleAttachment (in string contentType, in string url, in wstring displayName, in string uri, in boolean aNotDownloaded); */
  NS_IMETHOD HandleAttachment(const char *contentType, const char *url, const PRUnichar *displayName, const char *uri, PRBool aNotDownloaded) = 0;

  /* void onEndAllAttachments (); */
  NS_IMETHOD OnEndAllAttachments(void) = 0;

  /* void onEndMsgHeaders (in nsIMsgMailNewsUrl url); */
  NS_IMETHOD OnEndMsgHeaders(nsIMsgMailNewsUrl *url) = 0;

  /* void onEndMsgDownload (in nsIMsgMailNewsUrl url); */
  NS_IMETHOD OnEndMsgDownload(nsIMsgMailNewsUrl *url) = 0;

  /* attribute nsISupports securityInfo; */
  NS_IMETHOD GetSecurityInfo(nsISupports * *aSecurityInfo) = 0;
  NS_IMETHOD SetSecurityInfo(nsISupports * aSecurityInfo) = 0;

  /* void onMsgHasRemoteContent (in nsIMsgDBHdr aMsgHdr); */
  NS_IMETHOD OnMsgHasRemoteContent(nsIMsgDBHdr *aMsgHdr) = 0;

  /* nsIMsgDBHdr getDummyMsgHeader (); */
  NS_IMETHOD GetDummyMsgHeader(nsIMsgDBHdr **_retval) = 0;

  /* readonly attribute nsIWritablePropertyBag2 properties; */
  NS_IMETHOD GetProperties(nsIWritablePropertyBag2 * *aProperties) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGHEADERSINK \
  NS_IMETHOD ProcessHeaders(nsIUTF8StringEnumerator *aHeaderNames, nsIUTF8StringEnumerator *aHeaderValues, PRBool dontCollectAddress); \
  NS_IMETHOD HandleAttachment(const char *contentType, const char *url, const PRUnichar *displayName, const char *uri, PRBool aNotDownloaded); \
  NS_IMETHOD OnEndAllAttachments(void); \
  NS_IMETHOD OnEndMsgHeaders(nsIMsgMailNewsUrl *url); \
  NS_IMETHOD OnEndMsgDownload(nsIMsgMailNewsUrl *url); \
  NS_IMETHOD GetSecurityInfo(nsISupports * *aSecurityInfo); \
  NS_IMETHOD SetSecurityInfo(nsISupports * aSecurityInfo); \
  NS_IMETHOD OnMsgHasRemoteContent(nsIMsgDBHdr *aMsgHdr); \
  NS_IMETHOD GetDummyMsgHeader(nsIMsgDBHdr **_retval); \
  NS_IMETHOD GetProperties(nsIWritablePropertyBag2 * *aProperties); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGHEADERSINK(_to) \
  NS_IMETHOD ProcessHeaders(nsIUTF8StringEnumerator *aHeaderNames, nsIUTF8StringEnumerator *aHeaderValues, PRBool dontCollectAddress) { return _to ProcessHeaders(aHeaderNames, aHeaderValues, dontCollectAddress); } \
  NS_IMETHOD HandleAttachment(const char *contentType, const char *url, const PRUnichar *displayName, const char *uri, PRBool aNotDownloaded) { return _to HandleAttachment(contentType, url, displayName, uri, aNotDownloaded); } \
  NS_IMETHOD OnEndAllAttachments(void) { return _to OnEndAllAttachments(); } \
  NS_IMETHOD OnEndMsgHeaders(nsIMsgMailNewsUrl *url) { return _to OnEndMsgHeaders(url); } \
  NS_IMETHOD OnEndMsgDownload(nsIMsgMailNewsUrl *url) { return _to OnEndMsgDownload(url); } \
  NS_IMETHOD GetSecurityInfo(nsISupports * *aSecurityInfo) { return _to GetSecurityInfo(aSecurityInfo); } \
  NS_IMETHOD SetSecurityInfo(nsISupports * aSecurityInfo) { return _to SetSecurityInfo(aSecurityInfo); } \
  NS_IMETHOD OnMsgHasRemoteContent(nsIMsgDBHdr *aMsgHdr) { return _to OnMsgHasRemoteContent(aMsgHdr); } \
  NS_IMETHOD GetDummyMsgHeader(nsIMsgDBHdr **_retval) { return _to GetDummyMsgHeader(_retval); } \
  NS_IMETHOD GetProperties(nsIWritablePropertyBag2 * *aProperties) { return _to GetProperties(aProperties); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGHEADERSINK(_to) \
  NS_IMETHOD ProcessHeaders(nsIUTF8StringEnumerator *aHeaderNames, nsIUTF8StringEnumerator *aHeaderValues, PRBool dontCollectAddress) { return !_to ? NS_ERROR_NULL_POINTER : _to->ProcessHeaders(aHeaderNames, aHeaderValues, dontCollectAddress); } \
  NS_IMETHOD HandleAttachment(const char *contentType, const char *url, const PRUnichar *displayName, const char *uri, PRBool aNotDownloaded) { return !_to ? NS_ERROR_NULL_POINTER : _to->HandleAttachment(contentType, url, displayName, uri, aNotDownloaded); } \
  NS_IMETHOD OnEndAllAttachments(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnEndAllAttachments(); } \
  NS_IMETHOD OnEndMsgHeaders(nsIMsgMailNewsUrl *url) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnEndMsgHeaders(url); } \
  NS_IMETHOD OnEndMsgDownload(nsIMsgMailNewsUrl *url) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnEndMsgDownload(url); } \
  NS_IMETHOD GetSecurityInfo(nsISupports * *aSecurityInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSecurityInfo(aSecurityInfo); } \
  NS_IMETHOD SetSecurityInfo(nsISupports * aSecurityInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSecurityInfo(aSecurityInfo); } \
  NS_IMETHOD OnMsgHasRemoteContent(nsIMsgDBHdr *aMsgHdr) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnMsgHasRemoteContent(aMsgHdr); } \
  NS_IMETHOD GetDummyMsgHeader(nsIMsgDBHdr **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDummyMsgHeader(_retval); } \
  NS_IMETHOD GetProperties(nsIWritablePropertyBag2 * *aProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProperties(aProperties); } 

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

/* Header file */
class nsMsgHeaderSink : public nsIMsgHeaderSink
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGHEADERSINK

  nsMsgHeaderSink();

private:
  ~nsMsgHeaderSink();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMsgHeaderSink, nsIMsgHeaderSink)

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

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

/* void processHeaders (in nsIUTF8StringEnumerator aHeaderNames, in nsIUTF8StringEnumerator aHeaderValues, in boolean dontCollectAddress); */
NS_IMETHODIMP nsMsgHeaderSink::ProcessHeaders(nsIUTF8StringEnumerator *aHeaderNames, nsIUTF8StringEnumerator *aHeaderValues, PRBool dontCollectAddress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void handleAttachment (in string contentType, in string url, in wstring displayName, in string uri, in boolean aNotDownloaded); */
NS_IMETHODIMP nsMsgHeaderSink::HandleAttachment(const char *contentType, const char *url, const PRUnichar *displayName, const char *uri, PRBool aNotDownloaded)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onEndAllAttachments (); */
NS_IMETHODIMP nsMsgHeaderSink::OnEndAllAttachments()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onEndMsgHeaders (in nsIMsgMailNewsUrl url); */
NS_IMETHODIMP nsMsgHeaderSink::OnEndMsgHeaders(nsIMsgMailNewsUrl *url)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onEndMsgDownload (in nsIMsgMailNewsUrl url); */
NS_IMETHODIMP nsMsgHeaderSink::OnEndMsgDownload(nsIMsgMailNewsUrl *url)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsISupports securityInfo; */
NS_IMETHODIMP nsMsgHeaderSink::GetSecurityInfo(nsISupports * *aSecurityInfo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgHeaderSink::SetSecurityInfo(nsISupports * aSecurityInfo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onMsgHasRemoteContent (in nsIMsgDBHdr aMsgHdr); */
NS_IMETHODIMP nsMsgHeaderSink::OnMsgHasRemoteContent(nsIMsgDBHdr *aMsgHdr)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIMsgDBHdr getDummyMsgHeader (); */
NS_IMETHODIMP nsMsgHeaderSink::GetDummyMsgHeader(nsIMsgDBHdr **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIWritablePropertyBag2 properties; */
NS_IMETHODIMP nsMsgHeaderSink::GetProperties(nsIWritablePropertyBag2 * *aProperties)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIMimeMiscStatus_h__ */
