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

#ifndef __gen_nsISmtpUrl_h__
#define __gen_nsISmtpUrl_h__


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

#ifndef __gen_nsIMsgComposeParams_h__
#include "nsIMsgComposeParams.h"
#endif

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

class nsIPrompt; /* forward declaration */

class nsIAuthPrompt; /* forward declaration */

class nsISmtpServer; /* forward declaration */

class nsIInterfaceRequestor; /* forward declaration */

class nsIFile; /* forward declaration */


/* starting interface:    nsISmtpUrl */
#define NS_ISMTPURL_IID_STR "da22b8ac-059d-4f82-bf99-f5f3d3c8202d"

#define NS_ISMTPURL_IID \
  {0xda22b8ac, 0x059d, 0x4f82, \
    { 0xbf, 0x99, 0xf5, 0xf3, 0xd3, 0xc8, 0x20, 0x2d }}

class NS_NO_VTABLE NS_SCRIPTABLE nsISmtpUrl : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_ISMTPURL_IID)

  /**
   * SMTP Parse specific getters.
   * These retrieve various parts from the url.
   */
/**
   * This list is a list of all recipients to send the email to.
   * Each name is NULL terminated.
   */
  /* attribute string recipients; */
  NS_SCRIPTABLE NS_IMETHOD GetRecipients(char **aRecipients) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetRecipients(const char *aRecipients) = 0;

  /* attribute boolean PostMessage; */
  NS_SCRIPTABLE NS_IMETHOD GetPostMessage(PRBool *aPostMessage) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetPostMessage(PRBool aPostMessage) = 0;

  /**
   * The message can be stored in a file, to allow accessors for getting and
   * setting the file name to post.
   */
  /* attribute nsIFile postMessageFile; */
  NS_SCRIPTABLE NS_IMETHOD GetPostMessageFile(nsIFile **aPostMessageFile) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetPostMessageFile(nsIFile *aPostMessageFile) = 0;

  /* attribute boolean requestDSN; */
  NS_SCRIPTABLE NS_IMETHOD GetRequestDSN(PRBool *aRequestDSN) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetRequestDSN(PRBool aRequestDSN) = 0;

  /**
   * The envid which is used in the DSN.
   */
  /* attribute ACString dsnEnvid; */
  NS_SCRIPTABLE NS_IMETHOD GetDsnEnvid(nsACString & aDsnEnvid) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetDsnEnvid(const nsACString & aDsnEnvid) = 0;

  /**
   * SMTP Url instance specific getters and setters
   * Information the protocol needs to know in order to run the url.
   * These are NOT event sinks which are things the caller needs to know.
   */
/**
   * By default the url is really a bring up the compose window mailto url.
   * You need to call this function if you want to force the message to be
   * posted to the mailserver.
   */
/**
   * The user's full name and user's email address are encapsulated in the
   * senderIdentity.
   * (the user's domain name can be glopped from the user's email address)
   *
   * NOTE:  the SMTP username and SMTP server are in the smtp url
   * smtp://sspitzer@tintin/...
   */
  /* attribute nsIMsgIdentity senderIdentity; */
  NS_SCRIPTABLE NS_IMETHOD GetSenderIdentity(nsIMsgIdentity **aSenderIdentity) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetSenderIdentity(nsIMsgIdentity *aSenderIdentity) = 0;

  /* attribute nsIPrompt prompt; */
  NS_SCRIPTABLE NS_IMETHOD GetPrompt(nsIPrompt **aPrompt) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetPrompt(nsIPrompt *aPrompt) = 0;

  /* attribute nsIAuthPrompt authPrompt; */
  NS_SCRIPTABLE NS_IMETHOD GetAuthPrompt(nsIAuthPrompt **aAuthPrompt) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetAuthPrompt(nsIAuthPrompt *aAuthPrompt) = 0;

  /* attribute nsIInterfaceRequestor notificationCallbacks; */
  NS_SCRIPTABLE NS_IMETHOD GetNotificationCallbacks(nsIInterfaceRequestor **aNotificationCallbacks) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetNotificationCallbacks(nsIInterfaceRequestor *aNotificationCallbacks) = 0;

  /* attribute nsISmtpServer smtpServer; */
  NS_SCRIPTABLE NS_IMETHOD GetSmtpServer(nsISmtpServer **aSmtpServer) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetSmtpServer(nsISmtpServer *aSmtpServer) = 0;

  /* attribute boolean verifyLogon; */
  NS_SCRIPTABLE NS_IMETHOD GetVerifyLogon(PRBool *aVerifyLogon) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetVerifyLogon(PRBool aVerifyLogon) = 0;

  enum { DEFAULT_SMTP_PORT = 25 };

  enum { DEFAULT_SMTPS_PORT = 465 };

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsISmtpUrl, NS_ISMTPURL_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSISMTPURL \
  NS_SCRIPTABLE NS_IMETHOD GetRecipients(char **aRecipients); \
  NS_SCRIPTABLE NS_IMETHOD SetRecipients(const char *aRecipients); \
  NS_SCRIPTABLE NS_IMETHOD GetPostMessage(PRBool *aPostMessage); \
  NS_SCRIPTABLE NS_IMETHOD SetPostMessage(PRBool aPostMessage); \
  NS_SCRIPTABLE NS_IMETHOD GetPostMessageFile(nsIFile **aPostMessageFile); \
  NS_SCRIPTABLE NS_IMETHOD SetPostMessageFile(nsIFile *aPostMessageFile); \
  NS_SCRIPTABLE NS_IMETHOD GetRequestDSN(PRBool *aRequestDSN); \
  NS_SCRIPTABLE NS_IMETHOD SetRequestDSN(PRBool aRequestDSN); \
  NS_SCRIPTABLE NS_IMETHOD GetDsnEnvid(nsACString & aDsnEnvid); \
  NS_SCRIPTABLE NS_IMETHOD SetDsnEnvid(const nsACString & aDsnEnvid); \
  NS_SCRIPTABLE NS_IMETHOD GetSenderIdentity(nsIMsgIdentity **aSenderIdentity); \
  NS_SCRIPTABLE NS_IMETHOD SetSenderIdentity(nsIMsgIdentity *aSenderIdentity); \
  NS_SCRIPTABLE NS_IMETHOD GetPrompt(nsIPrompt **aPrompt); \
  NS_SCRIPTABLE NS_IMETHOD SetPrompt(nsIPrompt *aPrompt); \
  NS_SCRIPTABLE NS_IMETHOD GetAuthPrompt(nsIAuthPrompt **aAuthPrompt); \
  NS_SCRIPTABLE NS_IMETHOD SetAuthPrompt(nsIAuthPrompt *aAuthPrompt); \
  NS_SCRIPTABLE NS_IMETHOD GetNotificationCallbacks(nsIInterfaceRequestor **aNotificationCallbacks); \
  NS_SCRIPTABLE NS_IMETHOD SetNotificationCallbacks(nsIInterfaceRequestor *aNotificationCallbacks); \
  NS_SCRIPTABLE NS_IMETHOD GetSmtpServer(nsISmtpServer **aSmtpServer); \
  NS_SCRIPTABLE NS_IMETHOD SetSmtpServer(nsISmtpServer *aSmtpServer); \
  NS_SCRIPTABLE NS_IMETHOD GetVerifyLogon(PRBool *aVerifyLogon); \
  NS_SCRIPTABLE NS_IMETHOD SetVerifyLogon(PRBool aVerifyLogon); \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSISMTPURL(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetRecipients(char **aRecipients) { return _to GetRecipients(aRecipients); } \
  NS_SCRIPTABLE NS_IMETHOD SetRecipients(const char *aRecipients) { return _to SetRecipients(aRecipients); } \
  NS_SCRIPTABLE NS_IMETHOD GetPostMessage(PRBool *aPostMessage) { return _to GetPostMessage(aPostMessage); } \
  NS_SCRIPTABLE NS_IMETHOD SetPostMessage(PRBool aPostMessage) { return _to SetPostMessage(aPostMessage); } \
  NS_SCRIPTABLE NS_IMETHOD GetPostMessageFile(nsIFile **aPostMessageFile) { return _to GetPostMessageFile(aPostMessageFile); } \
  NS_SCRIPTABLE NS_IMETHOD SetPostMessageFile(nsIFile *aPostMessageFile) { return _to SetPostMessageFile(aPostMessageFile); } \
  NS_SCRIPTABLE NS_IMETHOD GetRequestDSN(PRBool *aRequestDSN) { return _to GetRequestDSN(aRequestDSN); } \
  NS_SCRIPTABLE NS_IMETHOD SetRequestDSN(PRBool aRequestDSN) { return _to SetRequestDSN(aRequestDSN); } \
  NS_SCRIPTABLE NS_IMETHOD GetDsnEnvid(nsACString & aDsnEnvid) { return _to GetDsnEnvid(aDsnEnvid); } \
  NS_SCRIPTABLE NS_IMETHOD SetDsnEnvid(const nsACString & aDsnEnvid) { return _to SetDsnEnvid(aDsnEnvid); } \
  NS_SCRIPTABLE NS_IMETHOD GetSenderIdentity(nsIMsgIdentity **aSenderIdentity) { return _to GetSenderIdentity(aSenderIdentity); } \
  NS_SCRIPTABLE NS_IMETHOD SetSenderIdentity(nsIMsgIdentity *aSenderIdentity) { return _to SetSenderIdentity(aSenderIdentity); } \
  NS_SCRIPTABLE NS_IMETHOD GetPrompt(nsIPrompt **aPrompt) { return _to GetPrompt(aPrompt); } \
  NS_SCRIPTABLE NS_IMETHOD SetPrompt(nsIPrompt *aPrompt) { return _to SetPrompt(aPrompt); } \
  NS_SCRIPTABLE NS_IMETHOD GetAuthPrompt(nsIAuthPrompt **aAuthPrompt) { return _to GetAuthPrompt(aAuthPrompt); } \
  NS_SCRIPTABLE NS_IMETHOD SetAuthPrompt(nsIAuthPrompt *aAuthPrompt) { return _to SetAuthPrompt(aAuthPrompt); } \
  NS_SCRIPTABLE NS_IMETHOD GetNotificationCallbacks(nsIInterfaceRequestor **aNotificationCallbacks) { return _to GetNotificationCallbacks(aNotificationCallbacks); } \
  NS_SCRIPTABLE NS_IMETHOD SetNotificationCallbacks(nsIInterfaceRequestor *aNotificationCallbacks) { return _to SetNotificationCallbacks(aNotificationCallbacks); } \
  NS_SCRIPTABLE NS_IMETHOD GetSmtpServer(nsISmtpServer **aSmtpServer) { return _to GetSmtpServer(aSmtpServer); } \
  NS_SCRIPTABLE NS_IMETHOD SetSmtpServer(nsISmtpServer *aSmtpServer) { return _to SetSmtpServer(aSmtpServer); } \
  NS_SCRIPTABLE NS_IMETHOD GetVerifyLogon(PRBool *aVerifyLogon) { return _to GetVerifyLogon(aVerifyLogon); } \
  NS_SCRIPTABLE NS_IMETHOD SetVerifyLogon(PRBool aVerifyLogon) { return _to SetVerifyLogon(aVerifyLogon); } \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSISMTPURL(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetRecipients(char **aRecipients) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecipients(aRecipients); } \
  NS_SCRIPTABLE NS_IMETHOD SetRecipients(const char *aRecipients) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetRecipients(aRecipients); } \
  NS_SCRIPTABLE NS_IMETHOD GetPostMessage(PRBool *aPostMessage) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPostMessage(aPostMessage); } \
  NS_SCRIPTABLE NS_IMETHOD SetPostMessage(PRBool aPostMessage) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPostMessage(aPostMessage); } \
  NS_SCRIPTABLE NS_IMETHOD GetPostMessageFile(nsIFile **aPostMessageFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPostMessageFile(aPostMessageFile); } \
  NS_SCRIPTABLE NS_IMETHOD SetPostMessageFile(nsIFile *aPostMessageFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPostMessageFile(aPostMessageFile); } \
  NS_SCRIPTABLE NS_IMETHOD GetRequestDSN(PRBool *aRequestDSN) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRequestDSN(aRequestDSN); } \
  NS_SCRIPTABLE NS_IMETHOD SetRequestDSN(PRBool aRequestDSN) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetRequestDSN(aRequestDSN); } \
  NS_SCRIPTABLE NS_IMETHOD GetDsnEnvid(nsACString & aDsnEnvid) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDsnEnvid(aDsnEnvid); } \
  NS_SCRIPTABLE NS_IMETHOD SetDsnEnvid(const nsACString & aDsnEnvid) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDsnEnvid(aDsnEnvid); } \
  NS_SCRIPTABLE NS_IMETHOD GetSenderIdentity(nsIMsgIdentity **aSenderIdentity) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSenderIdentity(aSenderIdentity); } \
  NS_SCRIPTABLE NS_IMETHOD SetSenderIdentity(nsIMsgIdentity *aSenderIdentity) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSenderIdentity(aSenderIdentity); } \
  NS_SCRIPTABLE NS_IMETHOD GetPrompt(nsIPrompt **aPrompt) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPrompt(aPrompt); } \
  NS_SCRIPTABLE NS_IMETHOD SetPrompt(nsIPrompt *aPrompt) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPrompt(aPrompt); } \
  NS_SCRIPTABLE NS_IMETHOD GetAuthPrompt(nsIAuthPrompt **aAuthPrompt) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAuthPrompt(aAuthPrompt); } \
  NS_SCRIPTABLE NS_IMETHOD SetAuthPrompt(nsIAuthPrompt *aAuthPrompt) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAuthPrompt(aAuthPrompt); } \
  NS_SCRIPTABLE NS_IMETHOD GetNotificationCallbacks(nsIInterfaceRequestor **aNotificationCallbacks) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNotificationCallbacks(aNotificationCallbacks); } \
  NS_SCRIPTABLE NS_IMETHOD SetNotificationCallbacks(nsIInterfaceRequestor *aNotificationCallbacks) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNotificationCallbacks(aNotificationCallbacks); } \
  NS_SCRIPTABLE NS_IMETHOD GetSmtpServer(nsISmtpServer **aSmtpServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSmtpServer(aSmtpServer); } \
  NS_SCRIPTABLE NS_IMETHOD SetSmtpServer(nsISmtpServer *aSmtpServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSmtpServer(aSmtpServer); } \
  NS_SCRIPTABLE NS_IMETHOD GetVerifyLogon(PRBool *aVerifyLogon) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVerifyLogon(aVerifyLogon); } \
  NS_SCRIPTABLE NS_IMETHOD SetVerifyLogon(PRBool aVerifyLogon) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVerifyLogon(aVerifyLogon); } \

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

/* Header file */
class nsSmtpUrl : public nsISmtpUrl
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSISMTPURL

  nsSmtpUrl();

private:
  ~nsSmtpUrl();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsSmtpUrl, nsISmtpUrl)

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

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

/* attribute string recipients; */
NS_IMETHODIMP nsSmtpUrl::GetRecipients(char **aRecipients)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSmtpUrl::SetRecipients(const char *aRecipients)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean PostMessage; */
NS_IMETHODIMP nsSmtpUrl::GetPostMessage(PRBool *aPostMessage)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSmtpUrl::SetPostMessage(PRBool aPostMessage)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIFile postMessageFile; */
NS_IMETHODIMP nsSmtpUrl::GetPostMessageFile(nsIFile **aPostMessageFile)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSmtpUrl::SetPostMessageFile(nsIFile *aPostMessageFile)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean requestDSN; */
NS_IMETHODIMP nsSmtpUrl::GetRequestDSN(PRBool *aRequestDSN)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSmtpUrl::SetRequestDSN(PRBool aRequestDSN)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute ACString dsnEnvid; */
NS_IMETHODIMP nsSmtpUrl::GetDsnEnvid(nsACString & aDsnEnvid)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSmtpUrl::SetDsnEnvid(const nsACString & aDsnEnvid)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIMsgIdentity senderIdentity; */
NS_IMETHODIMP nsSmtpUrl::GetSenderIdentity(nsIMsgIdentity **aSenderIdentity)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSmtpUrl::SetSenderIdentity(nsIMsgIdentity *aSenderIdentity)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIPrompt prompt; */
NS_IMETHODIMP nsSmtpUrl::GetPrompt(nsIPrompt **aPrompt)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSmtpUrl::SetPrompt(nsIPrompt *aPrompt)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIAuthPrompt authPrompt; */
NS_IMETHODIMP nsSmtpUrl::GetAuthPrompt(nsIAuthPrompt **aAuthPrompt)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSmtpUrl::SetAuthPrompt(nsIAuthPrompt *aAuthPrompt)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIInterfaceRequestor notificationCallbacks; */
NS_IMETHODIMP nsSmtpUrl::GetNotificationCallbacks(nsIInterfaceRequestor **aNotificationCallbacks)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSmtpUrl::SetNotificationCallbacks(nsIInterfaceRequestor *aNotificationCallbacks)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsISmtpServer smtpServer; */
NS_IMETHODIMP nsSmtpUrl::GetSmtpServer(nsISmtpServer **aSmtpServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSmtpUrl::SetSmtpServer(nsISmtpServer *aSmtpServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean verifyLogon; */
NS_IMETHODIMP nsSmtpUrl::GetVerifyLogon(PRBool *aVerifyLogon)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSmtpUrl::SetVerifyLogon(PRBool aVerifyLogon)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    nsIMailtoUrl */
#define NS_IMAILTOURL_IID_STR "ef796f57-7128-4fc6-9002-6cba9eb19e73"

#define NS_IMAILTOURL_IID \
  {0xef796f57, 0x7128, 0x4fc6, \
    { 0x90, 0x02, 0x6c, 0xba, 0x9e, 0xb1, 0x9e, 0x73 }}

class NS_NO_VTABLE NS_SCRIPTABLE nsIMailtoUrl : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMAILTOURL_IID)

  /**
   * mailto: parse specific getters
   *
   * All of these fields are things we can effectively extract from a
   * mailto url if it contains all of these values
   *
   * Note: Attachments aren't available because that would expose a potential
   * security hole (see bug 99055).
   *
   * These items are in one function as we only ever get them from the one
   * place and all at the same time.
   */
  /* void GetMessageContents (out ACString aToPart, out ACString aCcPart, out ACString aBccPart, out ACString aSubjectPart, out ACString aBodyPart, out ACString aHtmlPart, out ACString aReferencePart, out ACString aNewsgroupPart, out MSG_ComposeFormat aFormat); */
  NS_SCRIPTABLE NS_IMETHOD GetMessageContents(nsACString & aToPart NS_OUTPARAM, nsACString & aCcPart NS_OUTPARAM, nsACString & aBccPart NS_OUTPARAM, nsACString & aSubjectPart NS_OUTPARAM, nsACString & aBodyPart NS_OUTPARAM, nsACString & aHtmlPart NS_OUTPARAM, nsACString & aReferencePart NS_OUTPARAM, nsACString & aNewsgroupPart NS_OUTPARAM, MSG_ComposeFormat *aFormat NS_OUTPARAM) = 0;

  /**
   * These attributes are available should mailnews or extensions want them
   * but aren't used by standard in mailnews.
   */
  /* readonly attribute ACString fromPart; */
  NS_SCRIPTABLE NS_IMETHOD GetFromPart(nsACString & aFromPart) = 0;

  /* readonly attribute ACString followUpToPart; */
  NS_SCRIPTABLE NS_IMETHOD GetFollowUpToPart(nsACString & aFollowUpToPart) = 0;

  /* readonly attribute ACString organizationPart; */
  NS_SCRIPTABLE NS_IMETHOD GetOrganizationPart(nsACString & aOrganizationPart) = 0;

  /* readonly attribute ACString replyToPart; */
  NS_SCRIPTABLE NS_IMETHOD GetReplyToPart(nsACString & aReplyToPart) = 0;

  /* readonly attribute ACString priorityPart; */
  NS_SCRIPTABLE NS_IMETHOD GetPriorityPart(nsACString & aPriorityPart) = 0;

  /* readonly attribute ACString newsHostPart; */
  NS_SCRIPTABLE NS_IMETHOD GetNewsHostPart(nsACString & aNewsHostPart) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMailtoUrl, NS_IMAILTOURL_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMAILTOURL \
  NS_SCRIPTABLE NS_IMETHOD GetMessageContents(nsACString & aToPart NS_OUTPARAM, nsACString & aCcPart NS_OUTPARAM, nsACString & aBccPart NS_OUTPARAM, nsACString & aSubjectPart NS_OUTPARAM, nsACString & aBodyPart NS_OUTPARAM, nsACString & aHtmlPart NS_OUTPARAM, nsACString & aReferencePart NS_OUTPARAM, nsACString & aNewsgroupPart NS_OUTPARAM, MSG_ComposeFormat *aFormat NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetFromPart(nsACString & aFromPart); \
  NS_SCRIPTABLE NS_IMETHOD GetFollowUpToPart(nsACString & aFollowUpToPart); \
  NS_SCRIPTABLE NS_IMETHOD GetOrganizationPart(nsACString & aOrganizationPart); \
  NS_SCRIPTABLE NS_IMETHOD GetReplyToPart(nsACString & aReplyToPart); \
  NS_SCRIPTABLE NS_IMETHOD GetPriorityPart(nsACString & aPriorityPart); \
  NS_SCRIPTABLE NS_IMETHOD GetNewsHostPart(nsACString & aNewsHostPart); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMAILTOURL(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetMessageContents(nsACString & aToPart NS_OUTPARAM, nsACString & aCcPart NS_OUTPARAM, nsACString & aBccPart NS_OUTPARAM, nsACString & aSubjectPart NS_OUTPARAM, nsACString & aBodyPart NS_OUTPARAM, nsACString & aHtmlPart NS_OUTPARAM, nsACString & aReferencePart NS_OUTPARAM, nsACString & aNewsgroupPart NS_OUTPARAM, MSG_ComposeFormat *aFormat NS_OUTPARAM) { return _to GetMessageContents(aToPart, aCcPart, aBccPart, aSubjectPart, aBodyPart, aHtmlPart, aReferencePart, aNewsgroupPart, aFormat); } \
  NS_SCRIPTABLE NS_IMETHOD GetFromPart(nsACString & aFromPart) { return _to GetFromPart(aFromPart); } \
  NS_SCRIPTABLE NS_IMETHOD GetFollowUpToPart(nsACString & aFollowUpToPart) { return _to GetFollowUpToPart(aFollowUpToPart); } \
  NS_SCRIPTABLE NS_IMETHOD GetOrganizationPart(nsACString & aOrganizationPart) { return _to GetOrganizationPart(aOrganizationPart); } \
  NS_SCRIPTABLE NS_IMETHOD GetReplyToPart(nsACString & aReplyToPart) { return _to GetReplyToPart(aReplyToPart); } \
  NS_SCRIPTABLE NS_IMETHOD GetPriorityPart(nsACString & aPriorityPart) { return _to GetPriorityPart(aPriorityPart); } \
  NS_SCRIPTABLE NS_IMETHOD GetNewsHostPart(nsACString & aNewsHostPart) { return _to GetNewsHostPart(aNewsHostPart); } 

/* 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_SCRIPTABLE NS_IMETHOD GetMessageContents(nsACString & aToPart NS_OUTPARAM, nsACString & aCcPart NS_OUTPARAM, nsACString & aBccPart NS_OUTPARAM, nsACString & aSubjectPart NS_OUTPARAM, nsACString & aBodyPart NS_OUTPARAM, nsACString & aHtmlPart NS_OUTPARAM, nsACString & aReferencePart NS_OUTPARAM, nsACString & aNewsgroupPart NS_OUTPARAM, MSG_ComposeFormat *aFormat NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessageContents(aToPart, aCcPart, aBccPart, aSubjectPart, aBodyPart, aHtmlPart, aReferencePart, aNewsgroupPart, aFormat); } \
  NS_SCRIPTABLE NS_IMETHOD GetFromPart(nsACString & aFromPart) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFromPart(aFromPart); } \
  NS_SCRIPTABLE NS_IMETHOD GetFollowUpToPart(nsACString & aFollowUpToPart) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFollowUpToPart(aFollowUpToPart); } \
  NS_SCRIPTABLE NS_IMETHOD GetOrganizationPart(nsACString & aOrganizationPart) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOrganizationPart(aOrganizationPart); } \
  NS_SCRIPTABLE NS_IMETHOD GetReplyToPart(nsACString & aReplyToPart) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetReplyToPart(aReplyToPart); } \
  NS_SCRIPTABLE NS_IMETHOD GetPriorityPart(nsACString & aPriorityPart) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPriorityPart(aPriorityPart); } \
  NS_SCRIPTABLE NS_IMETHOD GetNewsHostPart(nsACString & aNewsHostPart) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNewsHostPart(aNewsHostPart); } 

#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();

private:
  ~nsMailtoUrl();

protected:
  /* additional members */
};

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

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

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

/* void GetMessageContents (out ACString aToPart, out ACString aCcPart, out ACString aBccPart, out ACString aSubjectPart, out ACString aBodyPart, out ACString aHtmlPart, out ACString aReferencePart, out ACString aNewsgroupPart, out MSG_ComposeFormat aFormat); */
NS_IMETHODIMP nsMailtoUrl::GetMessageContents(nsACString & aToPart NS_OUTPARAM, nsACString & aCcPart NS_OUTPARAM, nsACString & aBccPart NS_OUTPARAM, nsACString & aSubjectPart NS_OUTPARAM, nsACString & aBodyPart NS_OUTPARAM, nsACString & aHtmlPart NS_OUTPARAM, nsACString & aReferencePart NS_OUTPARAM, nsACString & aNewsgroupPart NS_OUTPARAM, MSG_ComposeFormat *aFormat NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString fromPart; */
NS_IMETHODIMP nsMailtoUrl::GetFromPart(nsACString & aFromPart)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString followUpToPart; */
NS_IMETHODIMP nsMailtoUrl::GetFollowUpToPart(nsACString & aFollowUpToPart)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString organizationPart; */
NS_IMETHODIMP nsMailtoUrl::GetOrganizationPart(nsACString & aOrganizationPart)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString replyToPart; */
NS_IMETHODIMP nsMailtoUrl::GetReplyToPart(nsACString & aReplyToPart)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString priorityPart; */
NS_IMETHODIMP nsMailtoUrl::GetPriorityPart(nsACString & aPriorityPart)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString newsHostPart; */
NS_IMETHODIMP nsMailtoUrl::GetNewsHostPart(nsACString & aNewsHostPart)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsISmtpUrl_h__ */
