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

#ifndef __gen_nsIMimeStreamConverter_h__
#define __gen_nsIMimeStreamConverter_h__


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

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

#ifndef __gen_nsIMimeHeaders_h__
#include "nsIMimeHeaders.h"
#endif

#ifndef __gen_nsIMsgIdentity_h__
#include "nsIMsgIdentity.h"
#endif

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

typedef PRInt32 nsMimeOutputType;


/* starting interface:    nsMimeOutput */
#define NS_MIMEOUTPUT_IID_STR "e4ed8894-3f9e-11d3-9896-001083010e9b"

#define NS_MIMEOUTPUT_IID \
  {0xe4ed8894, 0x3f9e, 0x11d3, \
    { 0x98, 0x96, 0x00, 0x10, 0x83, 0x01, 0x0e, 0x9b }}

class NS_NO_VTABLE nsMimeOutput {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_MIMEOUTPUT_IID)

  enum { nsMimeMessageSplitDisplay = 0 };

  enum { nsMimeMessageHeaderDisplay = 1 };

  enum { nsMimeMessageBodyDisplay = 2 };

  enum { nsMimeMessageQuoting = 3 };

  enum { nsMimeMessageBodyQuoting = 4 };

  enum { nsMimeMessageRaw = 5 };

  enum { nsMimeMessageDraftOrTemplate = 6 };

  enum { nsMimeMessageEditorTemplate = 7 };

  enum { nsMimeMessagePrintOutput = 9 };

  enum { nsMimeMessageSaveAs = 10 };

  enum { nsMimeMessageSource = 11 };

  enum { nsMimeUnknown = 12 };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSMIMEOUTPUT(_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_NSMIMEOUTPUT(_to) \

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

/* Header file */
class _MYCLASS_ : public nsMimeOutput
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSMIMEOUTPUT

  _MYCLASS_();
  virtual ~_MYCLASS_();
  /* additional members */
};

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

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

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

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


/* starting interface:    nsIMimeStreamConverterListener */
#define NS_IMIMESTREAMCONVERTERLISTENER_IID_STR "fa81caa0-6261-11d3-8311-00805f2a0107"

#define NS_IMIMESTREAMCONVERTERLISTENER_IID \
  {0xfa81caa0, 0x6261, 0x11d3, \
    { 0x83, 0x11, 0x00, 0x80, 0x5f, 0x2a, 0x01, 0x07 }}

class NS_NO_VTABLE nsIMimeStreamConverterListener : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IMIMESTREAMCONVERTERLISTENER_IID)

  /* void onHeadersReady (in nsIMimeHeaders headers); */
  NS_IMETHOD OnHeadersReady(nsIMimeHeaders *headers) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMIMESTREAMCONVERTERLISTENER \
  NS_IMETHOD OnHeadersReady(nsIMimeHeaders *headers); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMIMESTREAMCONVERTERLISTENER(_to) \
  NS_IMETHOD OnHeadersReady(nsIMimeHeaders *headers) { return _to OnHeadersReady(headers); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMIMESTREAMCONVERTERLISTENER(_to) \
  NS_IMETHOD OnHeadersReady(nsIMimeHeaders *headers) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnHeadersReady(headers); } 

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

/* Header file */
class nsMimeStreamConverterListener : public nsIMimeStreamConverterListener
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMIMESTREAMCONVERTERLISTENER

  nsMimeStreamConverterListener();
  virtual ~nsMimeStreamConverterListener();
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMimeStreamConverterListener, nsIMimeStreamConverterListener)

nsMimeStreamConverterListener::nsMimeStreamConverterListener()
{
  NS_INIT_ISUPPORTS();
  /* member initializers and constructor code */
}

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

/* void onHeadersReady (in nsIMimeHeaders headers); */
NS_IMETHODIMP nsMimeStreamConverterListener::OnHeadersReady(nsIMimeHeaders *headers)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    nsIMimeStreamConverter */
#define NS_IMIMESTREAMCONVERTER_IID_STR "e4ed8892-3f9e-11d3-9896-001083010e9b"

#define NS_IMIMESTREAMCONVERTER_IID \
  {0xe4ed8892, 0x3f9e, 0x11d3, \
    { 0x98, 0x96, 0x00, 0x10, 0x83, 0x01, 0x0e, 0x9b }}

class NS_NO_VTABLE nsIMimeStreamConverter : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IMIMESTREAMCONVERTER_IID)

  /* void SetMimeOutputType (in nsMimeOutputType aType); */
  NS_IMETHOD SetMimeOutputType(nsMimeOutputType aType) = 0;

  /* void GetMimeOutputType (out nsMimeOutputType aOutFormat); */
  NS_IMETHOD GetMimeOutputType(nsMimeOutputType *aOutFormat) = 0;

  /* void SetStreamURI (in nsIURI aURI); */
  NS_IMETHOD SetStreamURI(nsIURI *aURI) = 0;

  /* void SetMimeHeadersListener (in nsIMimeStreamConverterListener listener, in nsMimeOutputType aType); */
  NS_IMETHOD SetMimeHeadersListener(nsIMimeStreamConverterListener *listener, nsMimeOutputType aType) = 0;

  /* attribute PRBool forwardInline; */
  NS_IMETHOD GetForwardInline(PRBool *aForwardInline) = 0;
  NS_IMETHOD SetForwardInline(PRBool aForwardInline) = 0;

  /* attribute nsIMsgIdentity identity; */
  NS_IMETHOD GetIdentity(nsIMsgIdentity * *aIdentity) = 0;
  NS_IMETHOD SetIdentity(nsIMsgIdentity * aIdentity) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMIMESTREAMCONVERTER \
  NS_IMETHOD SetMimeOutputType(nsMimeOutputType aType); \
  NS_IMETHOD GetMimeOutputType(nsMimeOutputType *aOutFormat); \
  NS_IMETHOD SetStreamURI(nsIURI *aURI); \
  NS_IMETHOD SetMimeHeadersListener(nsIMimeStreamConverterListener *listener, nsMimeOutputType aType); \
  NS_IMETHOD GetForwardInline(PRBool *aForwardInline); \
  NS_IMETHOD SetForwardInline(PRBool aForwardInline); \
  NS_IMETHOD GetIdentity(nsIMsgIdentity * *aIdentity); \
  NS_IMETHOD SetIdentity(nsIMsgIdentity * aIdentity); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMIMESTREAMCONVERTER(_to) \
  NS_IMETHOD SetMimeOutputType(nsMimeOutputType aType) { return _to SetMimeOutputType(aType); } \
  NS_IMETHOD GetMimeOutputType(nsMimeOutputType *aOutFormat) { return _to GetMimeOutputType(aOutFormat); } \
  NS_IMETHOD SetStreamURI(nsIURI *aURI) { return _to SetStreamURI(aURI); } \
  NS_IMETHOD SetMimeHeadersListener(nsIMimeStreamConverterListener *listener, nsMimeOutputType aType) { return _to SetMimeHeadersListener(listener, aType); } \
  NS_IMETHOD GetForwardInline(PRBool *aForwardInline) { return _to GetForwardInline(aForwardInline); } \
  NS_IMETHOD SetForwardInline(PRBool aForwardInline) { return _to SetForwardInline(aForwardInline); } \
  NS_IMETHOD GetIdentity(nsIMsgIdentity * *aIdentity) { return _to GetIdentity(aIdentity); } \
  NS_IMETHOD SetIdentity(nsIMsgIdentity * aIdentity) { return _to SetIdentity(aIdentity); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMIMESTREAMCONVERTER(_to) \
  NS_IMETHOD SetMimeOutputType(nsMimeOutputType aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMimeOutputType(aType); } \
  NS_IMETHOD GetMimeOutputType(nsMimeOutputType *aOutFormat) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMimeOutputType(aOutFormat); } \
  NS_IMETHOD SetStreamURI(nsIURI *aURI) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetStreamURI(aURI); } \
  NS_IMETHOD SetMimeHeadersListener(nsIMimeStreamConverterListener *listener, nsMimeOutputType aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMimeHeadersListener(listener, aType); } \
  NS_IMETHOD GetForwardInline(PRBool *aForwardInline) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetForwardInline(aForwardInline); } \
  NS_IMETHOD SetForwardInline(PRBool aForwardInline) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetForwardInline(aForwardInline); } \
  NS_IMETHOD GetIdentity(nsIMsgIdentity * *aIdentity) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIdentity(aIdentity); } \
  NS_IMETHOD SetIdentity(nsIMsgIdentity * aIdentity) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIdentity(aIdentity); } 

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

/* Header file */
class nsMimeStreamConverter : public nsIMimeStreamConverter
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMIMESTREAMCONVERTER

  nsMimeStreamConverter();
  virtual ~nsMimeStreamConverter();
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMimeStreamConverter, nsIMimeStreamConverter)

nsMimeStreamConverter::nsMimeStreamConverter()
{
  NS_INIT_ISUPPORTS();
  /* member initializers and constructor code */
}

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

/* void SetMimeOutputType (in nsMimeOutputType aType); */
NS_IMETHODIMP nsMimeStreamConverter::SetMimeOutputType(nsMimeOutputType aType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void GetMimeOutputType (out nsMimeOutputType aOutFormat); */
NS_IMETHODIMP nsMimeStreamConverter::GetMimeOutputType(nsMimeOutputType *aOutFormat)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void SetStreamURI (in nsIURI aURI); */
NS_IMETHODIMP nsMimeStreamConverter::SetStreamURI(nsIURI *aURI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void SetMimeHeadersListener (in nsIMimeStreamConverterListener listener, in nsMimeOutputType aType); */
NS_IMETHODIMP nsMimeStreamConverter::SetMimeHeadersListener(nsIMimeStreamConverterListener *listener, nsMimeOutputType aType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute PRBool forwardInline; */
NS_IMETHODIMP nsMimeStreamConverter::GetForwardInline(PRBool *aForwardInline)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMimeStreamConverter::SetForwardInline(PRBool aForwardInline)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIMsgIdentity identity; */
NS_IMETHODIMP nsMimeStreamConverter::GetIdentity(nsIMsgIdentity * *aIdentity)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMimeStreamConverter::SetIdentity(nsIMsgIdentity * aIdentity)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIMimeStreamConverter_h__ */
