#ifndef _nsIMailtoUrl_h__
#define _nsIMailtoUrl_h__


#ifndef __gen_nsISupports_h__
#include "nsISupports.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:    nsIMailtoUrl */
#define NS_IMAILTOURL_IID_STR "5ee2aff7-9c6f-11d3-98a3-001083010e9b"

#define NS_IMAILTOURL_IID \
  {0x5ee2aff7, 0x9c6f, 0x11d3, \
    { 0x98, 0xa3, 0x00, 0x10, 0x83, 0x01, 0x0e, 0x9b }}

class NS_NO_VTABLE nsIMailtoUrl : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IMAILTOURL_IID)

  /* void GetMessageContents (out string aToPart, out string aCcPart, out string aBccPart, out string aFromPart, out string aFollowUpToPart, out string aOrganizationPart, out string aReplyToPart, out string aSubjectPart, out string aBodyPart, out string aHtmlPart, out string aReferencePart, out string aAttachmentPart, out string aPriorityPart, out string aNewsgroupPart, out string aNewsHostPart, out boolean aforcePlainText); */
  NS_IMETHOD GetMessageContents(char **aToPart, char **aCcPart, char **aBccPart, char **aFromPart, char **aFollowUpToPart, char **aOrganizationPart, char **aReplyToPart, char **aSubjectPart, char **aBodyPart, char **aHtmlPart, char **aReferencePart, char **aAttachmentPart, char **aPriorityPart, char **aNewsgroupPart, char **aNewsHostPart, PRBool *aforcePlainText) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMAILTOURL \
  NS_IMETHOD GetMessageContents(char **aToPart, char **aCcPart, char **aBccPart, char **aFromPart, char **aFollowUpToPart, char **aOrganizationPart, char **aReplyToPart, char **aSubjectPart, char **aBodyPart, char **aHtmlPart, char **aReferencePart, char **aAttachmentPart, char **aPriorityPart, char **aNewsgroupPart, char **aNewsHostPart, PRBool *aforcePlainText); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMAILTOURL(_to) \
  NS_IMETHOD GetMessageContents(char **aToPart, char **aCcPart, char **aBccPart, char **aFromPart, char **aFollowUpToPart, char **aOrganizationPart, char **aReplyToPart, char **aSubjectPart, char **aBodyPart, char **aHtmlPart, char **aReferencePart, char **aAttachmentPart, char **aPriorityPart, char **aNewsgroupPart, char **aNewsHostPart, PRBool *aforcePlainText) { return _to GetMessageContents(aToPart, aCcPart, aBccPart, aFromPart, aFollowUpToPart, aOrganizationPart, aReplyToPart, aSubjectPart, aBodyPart, aHtmlPart, aReferencePart, aAttachmentPart, aPriorityPart, aNewsgroupPart, aNewsHostPart, aforcePlainText); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMAILTOURL(_to) \
  NS_IMETHOD GetMessageContents(char **aToPart, char **aCcPart, char **aBccPart, char **aFromPart, char **aFollowUpToPart, char **aOrganizationPart, char **aReplyToPart, char **aSubjectPart, char **aBodyPart, char **aHtmlPart, char **aReferencePart, char **aAttachmentPart, char **aPriorityPart, char **aNewsgroupPart, char **aNewsHostPart, PRBool *aforcePlainText) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessageContents(aToPart, aCcPart, aBccPart, aFromPart, aFollowUpToPart, aOrganizationPart, aReplyToPart, aSubjectPart, aBodyPart, aHtmlPart, aReferencePart, aAttachmentPart, aPriorityPart, aNewsgroupPart, aNewsHostPart, aforcePlainText); } 

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

/* Header file */
class nsMailtoUrl : public nsIMailtoUrl
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMAILTOURL

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMailtoUrl, nsIMailtoUrl)

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

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

/* void GetMessageContents (out string aToPart, out string aCcPart, out string aBccPart, out string aFromPart, out string aFollowUpToPart, out string aOrganizationPart, out string aReplyToPart, out string aSubjectPart, out string aBodyPart, out string aHtmlPart, out string aReferencePart, out string aAttachmentPart, out string aPriorityPart, out string aNewsgroupPart, out string aNewsHostPart, out boolean aforcePlainText); */
NS_IMETHODIMP nsMailtoUrl::GetMessageContents(char **aToPart, char **aCcPart, char **aBccPart, char **aFromPart, char **aFollowUpToPart, char **aOrganizationPart, char **aReplyToPart, char **aSubjectPart, char **aBodyPart, char **aHtmlPart, char **aReferencePart, char **aAttachmentPart, char **aPriorityPart, char **aNewsgroupPart, char **aNewsHostPart, PRBool *aforcePlainText)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

#endif /* _nsIMailtoUrl__h__ */
