/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM /tmp/comm-release/mailnews/mime/public/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_DECLARE_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, int32_t *_retval) = 0;

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

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMimeMiscStatus, NS_IMIMEMISCSTATUS_IID)

/* 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, int32_t *_retval); \
  NS_IMETHOD GetImageURL(int32_t 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, int32_t *_retval) { return _to GetMiscStatus(aName, aEmail, _retval); } \
  NS_IMETHOD GetImageURL(int32_t 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, int32_t *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMiscStatus(aName, aEmail, _retval); } \
  NS_IMETHOD GetImageURL(int32_t 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, int32_t *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

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


/* starting interface:    nsIMsgHeaderSink */
#define NS_IMSGHEADERSINK_IID_STR "2a709e6f-48ec-4273-9d4c-7b1115a2e756"

#define NS_IMSGHEADERSINK_IID \
  {0x2a709e6f, 0x48ec, 0x4273, \
    { 0x9d, 0x4c, 0x7b, 0x11, 0x15, 0xa2, 0xe7, 0x56 }}

class NS_NO_VTABLE nsIMsgHeaderSink : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMSGHEADERSINK_IID)

  /* void processHeaders (in nsIUTF8StringEnumerator aHeaderNames, in nsIUTF8StringEnumerator aHeaderValues, in boolean dontCollectAddress); */
  NS_IMETHOD ProcessHeaders(nsIUTF8StringEnumerator *aHeaderNames, nsIUTF8StringEnumerator *aHeaderValues, bool 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, bool aNotDownloaded) = 0;

  /* void addAttachmentField (in string field, in string value); */
  NS_IMETHOD AddAttachmentField(const char * field, const char * value) = 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;

  /* readonly attribute nsIMsgDBHdr dummyMsgHeader; */
  NS_IMETHOD GetDummyMsgHeader(nsIMsgDBHdr * *aDummyMsgHeader) = 0;

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

  /* void resetProperties (); */
  NS_IMETHOD ResetProperties(void) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMsgHeaderSink, NS_IMSGHEADERSINK_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGHEADERSINK \
  NS_IMETHOD ProcessHeaders(nsIUTF8StringEnumerator *aHeaderNames, nsIUTF8StringEnumerator *aHeaderValues, bool dontCollectAddress); \
  NS_IMETHOD HandleAttachment(const char * contentType, const char * url, const PRUnichar * displayName, const char * uri, bool aNotDownloaded); \
  NS_IMETHOD AddAttachmentField(const char * field, const char * value); \
  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 * *aDummyMsgHeader); \
  NS_IMETHOD GetProperties(nsIWritablePropertyBag2 * *aProperties); \
  NS_IMETHOD ResetProperties(void); 

/* 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, bool dontCollectAddress) { return _to ProcessHeaders(aHeaderNames, aHeaderValues, dontCollectAddress); } \
  NS_IMETHOD HandleAttachment(const char * contentType, const char * url, const PRUnichar * displayName, const char * uri, bool aNotDownloaded) { return _to HandleAttachment(contentType, url, displayName, uri, aNotDownloaded); } \
  NS_IMETHOD AddAttachmentField(const char * field, const char * value) { return _to AddAttachmentField(field, value); } \
  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 * *aDummyMsgHeader) { return _to GetDummyMsgHeader(aDummyMsgHeader); } \
  NS_IMETHOD GetProperties(nsIWritablePropertyBag2 * *aProperties) { return _to GetProperties(aProperties); } \
  NS_IMETHOD ResetProperties(void) { return _to ResetProperties(); } 

/* 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, bool 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, bool aNotDownloaded) { return !_to ? NS_ERROR_NULL_POINTER : _to->HandleAttachment(contentType, url, displayName, uri, aNotDownloaded); } \
  NS_IMETHOD AddAttachmentField(const char * field, const char * value) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddAttachmentField(field, value); } \
  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 * *aDummyMsgHeader) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDummyMsgHeader(aDummyMsgHeader); } \
  NS_IMETHOD GetProperties(nsIWritablePropertyBag2 * *aProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProperties(aProperties); } \
  NS_IMETHOD ResetProperties(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ResetProperties(); } 

#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, bool 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, bool aNotDownloaded)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addAttachmentField (in string field, in string value); */
NS_IMETHODIMP nsMsgHeaderSink::AddAttachmentField(const char * field, const char * value)
{
    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;
}

/* readonly attribute nsIMsgDBHdr dummyMsgHeader; */
NS_IMETHODIMP nsMsgHeaderSink::GetDummyMsgHeader(nsIMsgDBHdr * *aDummyMsgHeader)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

/* void resetProperties (); */
NS_IMETHODIMP nsMsgHeaderSink::ResetProperties()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIMimeMiscStatus_h__ */
