/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM /tmp/comm-release/mailnews/mime/public/nsIMimeEmitter.idl
 */

#ifndef __gen_nsIMimeEmitter_h__
#define __gen_nsIMimeEmitter_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 */


/* starting interface:    nsMimeHeaderDisplayTypes */
#define NS_MIMEHEADERDISPLAYTYPES_IID_STR "eb9beb09-44de-4ad2-a560-f572b1afd534"

#define NS_MIMEHEADERDISPLAYTYPES_IID \
  {0xeb9beb09, 0x44de, 0x4ad2, \
    { 0xa5, 0x60, 0xf5, 0x72, 0xb1, 0xaf, 0xd5, 0x34 }}

class NS_NO_VTABLE nsMimeHeaderDisplayTypes {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_MIMEHEADERDISPLAYTYPES_IID)

  enum {
    MicroHeaders = 0,
    NormalHeaders = 1,
    AllHeaders = 2
  };

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsMimeHeaderDisplayTypes, NS_MIMEHEADERDISPLAYTYPES_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSMIMEHEADERDISPLAYTYPES \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSMIMEHEADERDISPLAYTYPES(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSMIMEHEADERDISPLAYTYPES(_to) \

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

/* Header file */
class _MYCLASS_ : public nsMimeHeaderDisplayTypes
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSMIMEHEADERDISPLAYTYPES

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, nsMimeHeaderDisplayTypes)

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

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

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

#define NS_IMIME_MISC_STATUS_KEY       "@mozilla.org/MimeMiscStatus;1?type="

/* starting interface:    nsIMimeEmitter */
#define NS_IMIMEEMITTER_IID_STR "7a57166f-2891-4122-9a74-6c3fab0caac3"

#define NS_IMIMEEMITTER_IID \
  {0x7a57166f, 0x2891, 0x4122, \
    { 0x9a, 0x74, 0x6c, 0x3f, 0xab, 0x0c, 0xaa, 0xc3 }}

class NS_NO_VTABLE nsIMimeEmitter : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMIMEEMITTER_IID)

  /* attribute nsIStreamListener outputListener; */
  NS_IMETHOD GetOutputListener(nsIStreamListener * *aOutputListener) = 0;
  NS_IMETHOD SetOutputListener(nsIStreamListener *aOutputListener) = 0;

  /* void initialize (in nsIURI url, in nsIChannel aChannel, in long aFormat); */
  NS_IMETHOD Initialize(nsIURI *url, nsIChannel *aChannel, int32_t aFormat) = 0;

  /* void complete (); */
  NS_IMETHOD Complete(void) = 0;

  /* void setPipe (in nsIInputStream inputStream, in nsIOutputStream outStream); */
  NS_IMETHOD SetPipe(nsIInputStream *inputStream, nsIOutputStream *outStream) = 0;

  /* void startHeader (in boolean rootMailHeader, in boolean headerOnly, [const] in string msgID, [const] in string outCharset); */
  NS_IMETHOD StartHeader(bool rootMailHeader, bool headerOnly, const char * msgID, const char * outCharset) = 0;

  /* void addHeaderField ([const] in string field, [const] in string value); */
  NS_IMETHOD AddHeaderField(const char * field, const char * value) = 0;

  /* void addAllHeaders (in ACString allheaders); */
  NS_IMETHOD AddAllHeaders(const nsACString & allheaders) = 0;

  /* void writeHTMLHeaders ([const] in AUTF8String name); */
  NS_IMETHOD WriteHTMLHeaders(const nsACString & name) = 0;

  /* void endHeader ([const] in AUTF8String name); */
  NS_IMETHOD EndHeader(const nsACString & name) = 0;

  /* void updateCharacterSet ([const] in string aCharset); */
  NS_IMETHOD UpdateCharacterSet(const char * aCharset) = 0;

  /* void startAttachment ([const] in AUTF8String name, [const] in string contentType, [const] in string url, in boolean aNotDownloaded); */
  NS_IMETHOD StartAttachment(const nsACString & name, const char * contentType, const char * url, bool aNotDownloaded) = 0;

  /* void addAttachmentField ([const] in string field, [const] in string value); */
  NS_IMETHOD AddAttachmentField(const char * field, const char * value) = 0;

  /* void endAttachment (); */
  NS_IMETHOD EndAttachment(void) = 0;

  /* void endAllAttachments (); */
  NS_IMETHOD EndAllAttachments(void) = 0;

  /* void startBody (in boolean bodyOnly, [const] in string msgID, [const] in string outCharset); */
  NS_IMETHOD StartBody(bool bodyOnly, const char * msgID, const char * outCharset) = 0;

  /* void writeBody ([const] in AUTF8String buf, out uint32_t amountWritten); */
  NS_IMETHOD WriteBody(const nsACString & buf, uint32_t *amountWritten) = 0;

  /* void endBody (); */
  NS_IMETHOD EndBody(void) = 0;

  /* void write ([const] in ACString buf, out uint32_t amountWritten); */
  NS_IMETHOD Write(const nsACString & buf, uint32_t *amountWritten) = 0;

  /* void utilityWrite ([const] in string buf); */
  NS_IMETHOD UtilityWrite(const char * buf) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMimeEmitter, NS_IMIMEEMITTER_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMIMEEMITTER \
  NS_IMETHOD GetOutputListener(nsIStreamListener * *aOutputListener); \
  NS_IMETHOD SetOutputListener(nsIStreamListener *aOutputListener); \
  NS_IMETHOD Initialize(nsIURI *url, nsIChannel *aChannel, int32_t aFormat); \
  NS_IMETHOD Complete(void); \
  NS_IMETHOD SetPipe(nsIInputStream *inputStream, nsIOutputStream *outStream); \
  NS_IMETHOD StartHeader(bool rootMailHeader, bool headerOnly, const char * msgID, const char * outCharset); \
  NS_IMETHOD AddHeaderField(const char * field, const char * value); \
  NS_IMETHOD AddAllHeaders(const nsACString & allheaders); \
  NS_IMETHOD WriteHTMLHeaders(const nsACString & name); \
  NS_IMETHOD EndHeader(const nsACString & name); \
  NS_IMETHOD UpdateCharacterSet(const char * aCharset); \
  NS_IMETHOD StartAttachment(const nsACString & name, const char * contentType, const char * url, bool aNotDownloaded); \
  NS_IMETHOD AddAttachmentField(const char * field, const char * value); \
  NS_IMETHOD EndAttachment(void); \
  NS_IMETHOD EndAllAttachments(void); \
  NS_IMETHOD StartBody(bool bodyOnly, const char * msgID, const char * outCharset); \
  NS_IMETHOD WriteBody(const nsACString & buf, uint32_t *amountWritten); \
  NS_IMETHOD EndBody(void); \
  NS_IMETHOD Write(const nsACString & buf, uint32_t *amountWritten); \
  NS_IMETHOD UtilityWrite(const char * buf); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMIMEEMITTER(_to) \
  NS_IMETHOD GetOutputListener(nsIStreamListener * *aOutputListener) { return _to GetOutputListener(aOutputListener); } \
  NS_IMETHOD SetOutputListener(nsIStreamListener *aOutputListener) { return _to SetOutputListener(aOutputListener); } \
  NS_IMETHOD Initialize(nsIURI *url, nsIChannel *aChannel, int32_t aFormat) { return _to Initialize(url, aChannel, aFormat); } \
  NS_IMETHOD Complete(void) { return _to Complete(); } \
  NS_IMETHOD SetPipe(nsIInputStream *inputStream, nsIOutputStream *outStream) { return _to SetPipe(inputStream, outStream); } \
  NS_IMETHOD StartHeader(bool rootMailHeader, bool headerOnly, const char * msgID, const char * outCharset) { return _to StartHeader(rootMailHeader, headerOnly, msgID, outCharset); } \
  NS_IMETHOD AddHeaderField(const char * field, const char * value) { return _to AddHeaderField(field, value); } \
  NS_IMETHOD AddAllHeaders(const nsACString & allheaders) { return _to AddAllHeaders(allheaders); } \
  NS_IMETHOD WriteHTMLHeaders(const nsACString & name) { return _to WriteHTMLHeaders(name); } \
  NS_IMETHOD EndHeader(const nsACString & name) { return _to EndHeader(name); } \
  NS_IMETHOD UpdateCharacterSet(const char * aCharset) { return _to UpdateCharacterSet(aCharset); } \
  NS_IMETHOD StartAttachment(const nsACString & name, const char * contentType, const char * url, bool aNotDownloaded) { return _to StartAttachment(name, contentType, url, aNotDownloaded); } \
  NS_IMETHOD AddAttachmentField(const char * field, const char * value) { return _to AddAttachmentField(field, value); } \
  NS_IMETHOD EndAttachment(void) { return _to EndAttachment(); } \
  NS_IMETHOD EndAllAttachments(void) { return _to EndAllAttachments(); } \
  NS_IMETHOD StartBody(bool bodyOnly, const char * msgID, const char * outCharset) { return _to StartBody(bodyOnly, msgID, outCharset); } \
  NS_IMETHOD WriteBody(const nsACString & buf, uint32_t *amountWritten) { return _to WriteBody(buf, amountWritten); } \
  NS_IMETHOD EndBody(void) { return _to EndBody(); } \
  NS_IMETHOD Write(const nsACString & buf, uint32_t *amountWritten) { return _to Write(buf, amountWritten); } \
  NS_IMETHOD UtilityWrite(const char * buf) { return _to UtilityWrite(buf); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMIMEEMITTER(_to) \
  NS_IMETHOD GetOutputListener(nsIStreamListener * *aOutputListener) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOutputListener(aOutputListener); } \
  NS_IMETHOD SetOutputListener(nsIStreamListener *aOutputListener) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetOutputListener(aOutputListener); } \
  NS_IMETHOD Initialize(nsIURI *url, nsIChannel *aChannel, int32_t aFormat) { return !_to ? NS_ERROR_NULL_POINTER : _to->Initialize(url, aChannel, aFormat); } \
  NS_IMETHOD Complete(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Complete(); } \
  NS_IMETHOD SetPipe(nsIInputStream *inputStream, nsIOutputStream *outStream) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPipe(inputStream, outStream); } \
  NS_IMETHOD StartHeader(bool rootMailHeader, bool headerOnly, const char * msgID, const char * outCharset) { return !_to ? NS_ERROR_NULL_POINTER : _to->StartHeader(rootMailHeader, headerOnly, msgID, outCharset); } \
  NS_IMETHOD AddHeaderField(const char * field, const char * value) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddHeaderField(field, value); } \
  NS_IMETHOD AddAllHeaders(const nsACString & allheaders) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddAllHeaders(allheaders); } \
  NS_IMETHOD WriteHTMLHeaders(const nsACString & name) { return !_to ? NS_ERROR_NULL_POINTER : _to->WriteHTMLHeaders(name); } \
  NS_IMETHOD EndHeader(const nsACString & name) { return !_to ? NS_ERROR_NULL_POINTER : _to->EndHeader(name); } \
  NS_IMETHOD UpdateCharacterSet(const char * aCharset) { return !_to ? NS_ERROR_NULL_POINTER : _to->UpdateCharacterSet(aCharset); } \
  NS_IMETHOD StartAttachment(const nsACString & name, const char * contentType, const char * url, bool aNotDownloaded) { return !_to ? NS_ERROR_NULL_POINTER : _to->StartAttachment(name, contentType, url, aNotDownloaded); } \
  NS_IMETHOD AddAttachmentField(const char * field, const char * value) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddAttachmentField(field, value); } \
  NS_IMETHOD EndAttachment(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->EndAttachment(); } \
  NS_IMETHOD EndAllAttachments(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->EndAllAttachments(); } \
  NS_IMETHOD StartBody(bool bodyOnly, const char * msgID, const char * outCharset) { return !_to ? NS_ERROR_NULL_POINTER : _to->StartBody(bodyOnly, msgID, outCharset); } \
  NS_IMETHOD WriteBody(const nsACString & buf, uint32_t *amountWritten) { return !_to ? NS_ERROR_NULL_POINTER : _to->WriteBody(buf, amountWritten); } \
  NS_IMETHOD EndBody(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->EndBody(); } \
  NS_IMETHOD Write(const nsACString & buf, uint32_t *amountWritten) { return !_to ? NS_ERROR_NULL_POINTER : _to->Write(buf, amountWritten); } \
  NS_IMETHOD UtilityWrite(const char * buf) { return !_to ? NS_ERROR_NULL_POINTER : _to->UtilityWrite(buf); } 

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

/* Header file */
class nsMimeEmitter : public nsIMimeEmitter
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMIMEEMITTER

  nsMimeEmitter();

private:
  ~nsMimeEmitter();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMimeEmitter, nsIMimeEmitter)

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

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

/* attribute nsIStreamListener outputListener; */
NS_IMETHODIMP nsMimeEmitter::GetOutputListener(nsIStreamListener * *aOutputListener)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMimeEmitter::SetOutputListener(nsIStreamListener *aOutputListener)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void initialize (in nsIURI url, in nsIChannel aChannel, in long aFormat); */
NS_IMETHODIMP nsMimeEmitter::Initialize(nsIURI *url, nsIChannel *aChannel, int32_t aFormat)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void complete (); */
NS_IMETHODIMP nsMimeEmitter::Complete()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setPipe (in nsIInputStream inputStream, in nsIOutputStream outStream); */
NS_IMETHODIMP nsMimeEmitter::SetPipe(nsIInputStream *inputStream, nsIOutputStream *outStream)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void startHeader (in boolean rootMailHeader, in boolean headerOnly, [const] in string msgID, [const] in string outCharset); */
NS_IMETHODIMP nsMimeEmitter::StartHeader(bool rootMailHeader, bool headerOnly, const char * msgID, const char * outCharset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addHeaderField ([const] in string field, [const] in string value); */
NS_IMETHODIMP nsMimeEmitter::AddHeaderField(const char * field, const char * value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addAllHeaders (in ACString allheaders); */
NS_IMETHODIMP nsMimeEmitter::AddAllHeaders(const nsACString & allheaders)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void writeHTMLHeaders ([const] in AUTF8String name); */
NS_IMETHODIMP nsMimeEmitter::WriteHTMLHeaders(const nsACString & name)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void endHeader ([const] in AUTF8String name); */
NS_IMETHODIMP nsMimeEmitter::EndHeader(const nsACString & name)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void updateCharacterSet ([const] in string aCharset); */
NS_IMETHODIMP nsMimeEmitter::UpdateCharacterSet(const char * aCharset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void startAttachment ([const] in AUTF8String name, [const] in string contentType, [const] in string url, in boolean aNotDownloaded); */
NS_IMETHODIMP nsMimeEmitter::StartAttachment(const nsACString & name, const char * contentType, const char * url, bool aNotDownloaded)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addAttachmentField ([const] in string field, [const] in string value); */
NS_IMETHODIMP nsMimeEmitter::AddAttachmentField(const char * field, const char * value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void endAttachment (); */
NS_IMETHODIMP nsMimeEmitter::EndAttachment()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void endAllAttachments (); */
NS_IMETHODIMP nsMimeEmitter::EndAllAttachments()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void startBody (in boolean bodyOnly, [const] in string msgID, [const] in string outCharset); */
NS_IMETHODIMP nsMimeEmitter::StartBody(bool bodyOnly, const char * msgID, const char * outCharset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void writeBody ([const] in AUTF8String buf, out uint32_t amountWritten); */
NS_IMETHODIMP nsMimeEmitter::WriteBody(const nsACString & buf, uint32_t *amountWritten)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void endBody (); */
NS_IMETHODIMP nsMimeEmitter::EndBody()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void write ([const] in ACString buf, out uint32_t amountWritten); */
NS_IMETHODIMP nsMimeEmitter::Write(const nsACString & buf, uint32_t *amountWritten)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void utilityWrite ([const] in string buf); */
NS_IMETHODIMP nsMimeEmitter::UtilityWrite(const char * buf)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIMimeEmitter_h__ */
