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

#ifndef __gen_nsISmtpService_h__
#define __gen_nsISmtpService_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
class nsISmtpServer; /* forward declaration */

class nsIURI; /* forward declaration */

class nsIUrlListener; /* forward declaration */

class nsIMsgIdentity; /* forward declaration */

class nsIInterfaceRequestor; /* forward declaration */

class nsIFile; /* forward declaration */

class nsIMsgStatusFeedback; /* forward declaration */

class nsIRequest; /* forward declaration */

class nsISimpleEnumerator; /* forward declaration */

class nsIMsgWindow; /* forward declaration */


/* starting interface:    nsISmtpService */
#define NS_ISMTPSERVICE_IID_STR "8c5c5d5b-3b69-4a80-bf4b-d6c22865a3c3"

#define NS_ISMTPSERVICE_IID \
  {0x8c5c5d5b, 0x3b69, 0x4a80, \
    { 0xbf, 0x4b, 0xd6, 0xc2, 0x28, 0x65, 0xa3, 0xc3 }}

class NS_NO_VTABLE NS_SCRIPTABLE nsISmtpService : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_ISMTPSERVICE_IID)

  /* void sendMailMessage (in nsIFile aFilePath, in string aRecipients, in nsIMsgIdentity aSenderIdentity, in string aPassword, in nsIUrlListener aUrlListener, in nsIMsgStatusFeedback aStatusListener, in nsIInterfaceRequestor aNotificationCallbacks, in boolean aRequestDSN, out nsIURI aURL, out nsIRequest aRequest); */
  NS_SCRIPTABLE NS_IMETHOD SendMailMessage(nsIFile *aFilePath, const char * aRecipients, nsIMsgIdentity *aSenderIdentity, const char * aPassword, nsIUrlListener *aUrlListener, nsIMsgStatusFeedback *aStatusListener, nsIInterfaceRequestor *aNotificationCallbacks, bool aRequestDSN, nsIURI * *aURL NS_OUTPARAM, nsIRequest * *aRequest NS_OUTPARAM) = 0;

  /* nsIURI verifyLogon (in nsISmtpServer aServer, in nsIUrlListener aListener, in nsIMsgWindow aMsgWindow); */
  NS_SCRIPTABLE NS_IMETHOD VerifyLogon(nsISmtpServer *aServer, nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow, nsIURI * *_retval NS_OUTPARAM) = 0;

  /* void GetSmtpServerByIdentity (in nsIMsgIdentity aSenderIdentity, out nsISmtpServer aServer); */
  NS_SCRIPTABLE NS_IMETHOD GetSmtpServerByIdentity(nsIMsgIdentity *aSenderIdentity, nsISmtpServer * *aServer NS_OUTPARAM) = 0;

  /* readonly attribute nsISimpleEnumerator smtpServers; */
  NS_SCRIPTABLE NS_IMETHOD GetSmtpServers(nsISimpleEnumerator * *aSmtpServers) = 0;

  /* attribute nsISmtpServer defaultServer; */
  NS_SCRIPTABLE NS_IMETHOD GetDefaultServer(nsISmtpServer * *aDefaultServer) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetDefaultServer(nsISmtpServer *aDefaultServer) = 0;

  /* attribute nsISmtpServer sessionDefaultServer; */
  NS_SCRIPTABLE NS_IMETHOD GetSessionDefaultServer(nsISmtpServer * *aSessionDefaultServer) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetSessionDefaultServer(nsISmtpServer *aSessionDefaultServer) = 0;

  /* nsISmtpServer createSmtpServer (); */
  NS_SCRIPTABLE NS_IMETHOD CreateSmtpServer(nsISmtpServer * *_retval NS_OUTPARAM) = 0;

  /* nsISmtpServer findServer (in string username, in string hostname); */
  NS_SCRIPTABLE NS_IMETHOD FindServer(const char * username, const char * hostname, nsISmtpServer * *_retval NS_OUTPARAM) = 0;

  /* nsISmtpServer getServerByKey (in string key); */
  NS_SCRIPTABLE NS_IMETHOD GetServerByKey(const char * key, nsISmtpServer * *_retval NS_OUTPARAM) = 0;

  /* void deleteSmtpServer (in nsISmtpServer server); */
  NS_SCRIPTABLE NS_IMETHOD DeleteSmtpServer(nsISmtpServer *server) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsISmtpService, NS_ISMTPSERVICE_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSISMTPSERVICE \
  NS_SCRIPTABLE NS_IMETHOD SendMailMessage(nsIFile *aFilePath, const char * aRecipients, nsIMsgIdentity *aSenderIdentity, const char * aPassword, nsIUrlListener *aUrlListener, nsIMsgStatusFeedback *aStatusListener, nsIInterfaceRequestor *aNotificationCallbacks, bool aRequestDSN, nsIURI * *aURL NS_OUTPARAM, nsIRequest * *aRequest NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD VerifyLogon(nsISmtpServer *aServer, nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow, nsIURI * *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetSmtpServerByIdentity(nsIMsgIdentity *aSenderIdentity, nsISmtpServer * *aServer NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetSmtpServers(nsISimpleEnumerator * *aSmtpServers); \
  NS_SCRIPTABLE NS_IMETHOD GetDefaultServer(nsISmtpServer * *aDefaultServer); \
  NS_SCRIPTABLE NS_IMETHOD SetDefaultServer(nsISmtpServer *aDefaultServer); \
  NS_SCRIPTABLE NS_IMETHOD GetSessionDefaultServer(nsISmtpServer * *aSessionDefaultServer); \
  NS_SCRIPTABLE NS_IMETHOD SetSessionDefaultServer(nsISmtpServer *aSessionDefaultServer); \
  NS_SCRIPTABLE NS_IMETHOD CreateSmtpServer(nsISmtpServer * *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD FindServer(const char * username, const char * hostname, nsISmtpServer * *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetServerByKey(const char * key, nsISmtpServer * *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD DeleteSmtpServer(nsISmtpServer *server); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSISMTPSERVICE(_to) \
  NS_SCRIPTABLE NS_IMETHOD SendMailMessage(nsIFile *aFilePath, const char * aRecipients, nsIMsgIdentity *aSenderIdentity, const char * aPassword, nsIUrlListener *aUrlListener, nsIMsgStatusFeedback *aStatusListener, nsIInterfaceRequestor *aNotificationCallbacks, bool aRequestDSN, nsIURI * *aURL NS_OUTPARAM, nsIRequest * *aRequest NS_OUTPARAM) { return _to SendMailMessage(aFilePath, aRecipients, aSenderIdentity, aPassword, aUrlListener, aStatusListener, aNotificationCallbacks, aRequestDSN, aURL, aRequest); } \
  NS_SCRIPTABLE NS_IMETHOD VerifyLogon(nsISmtpServer *aServer, nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow, nsIURI * *_retval NS_OUTPARAM) { return _to VerifyLogon(aServer, aListener, aMsgWindow, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetSmtpServerByIdentity(nsIMsgIdentity *aSenderIdentity, nsISmtpServer * *aServer NS_OUTPARAM) { return _to GetSmtpServerByIdentity(aSenderIdentity, aServer); } \
  NS_SCRIPTABLE NS_IMETHOD GetSmtpServers(nsISimpleEnumerator * *aSmtpServers) { return _to GetSmtpServers(aSmtpServers); } \
  NS_SCRIPTABLE NS_IMETHOD GetDefaultServer(nsISmtpServer * *aDefaultServer) { return _to GetDefaultServer(aDefaultServer); } \
  NS_SCRIPTABLE NS_IMETHOD SetDefaultServer(nsISmtpServer *aDefaultServer) { return _to SetDefaultServer(aDefaultServer); } \
  NS_SCRIPTABLE NS_IMETHOD GetSessionDefaultServer(nsISmtpServer * *aSessionDefaultServer) { return _to GetSessionDefaultServer(aSessionDefaultServer); } \
  NS_SCRIPTABLE NS_IMETHOD SetSessionDefaultServer(nsISmtpServer *aSessionDefaultServer) { return _to SetSessionDefaultServer(aSessionDefaultServer); } \
  NS_SCRIPTABLE NS_IMETHOD CreateSmtpServer(nsISmtpServer * *_retval NS_OUTPARAM) { return _to CreateSmtpServer(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD FindServer(const char * username, const char * hostname, nsISmtpServer * *_retval NS_OUTPARAM) { return _to FindServer(username, hostname, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetServerByKey(const char * key, nsISmtpServer * *_retval NS_OUTPARAM) { return _to GetServerByKey(key, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD DeleteSmtpServer(nsISmtpServer *server) { return _to DeleteSmtpServer(server); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSISMTPSERVICE(_to) \
  NS_SCRIPTABLE NS_IMETHOD SendMailMessage(nsIFile *aFilePath, const char * aRecipients, nsIMsgIdentity *aSenderIdentity, const char * aPassword, nsIUrlListener *aUrlListener, nsIMsgStatusFeedback *aStatusListener, nsIInterfaceRequestor *aNotificationCallbacks, bool aRequestDSN, nsIURI * *aURL NS_OUTPARAM, nsIRequest * *aRequest NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->SendMailMessage(aFilePath, aRecipients, aSenderIdentity, aPassword, aUrlListener, aStatusListener, aNotificationCallbacks, aRequestDSN, aURL, aRequest); } \
  NS_SCRIPTABLE NS_IMETHOD VerifyLogon(nsISmtpServer *aServer, nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow, nsIURI * *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->VerifyLogon(aServer, aListener, aMsgWindow, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetSmtpServerByIdentity(nsIMsgIdentity *aSenderIdentity, nsISmtpServer * *aServer NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSmtpServerByIdentity(aSenderIdentity, aServer); } \
  NS_SCRIPTABLE NS_IMETHOD GetSmtpServers(nsISimpleEnumerator * *aSmtpServers) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSmtpServers(aSmtpServers); } \
  NS_SCRIPTABLE NS_IMETHOD GetDefaultServer(nsISmtpServer * *aDefaultServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDefaultServer(aDefaultServer); } \
  NS_SCRIPTABLE NS_IMETHOD SetDefaultServer(nsISmtpServer *aDefaultServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDefaultServer(aDefaultServer); } \
  NS_SCRIPTABLE NS_IMETHOD GetSessionDefaultServer(nsISmtpServer * *aSessionDefaultServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSessionDefaultServer(aSessionDefaultServer); } \
  NS_SCRIPTABLE NS_IMETHOD SetSessionDefaultServer(nsISmtpServer *aSessionDefaultServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSessionDefaultServer(aSessionDefaultServer); } \
  NS_SCRIPTABLE NS_IMETHOD CreateSmtpServer(nsISmtpServer * *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateSmtpServer(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD FindServer(const char * username, const char * hostname, nsISmtpServer * *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->FindServer(username, hostname, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetServerByKey(const char * key, nsISmtpServer * *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetServerByKey(key, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD DeleteSmtpServer(nsISmtpServer *server) { return !_to ? NS_ERROR_NULL_POINTER : _to->DeleteSmtpServer(server); } 

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

/* Header file */
class nsSmtpService : public nsISmtpService
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSISMTPSERVICE

  nsSmtpService();

private:
  ~nsSmtpService();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsSmtpService, nsISmtpService)

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

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

/* void sendMailMessage (in nsIFile aFilePath, in string aRecipients, in nsIMsgIdentity aSenderIdentity, in string aPassword, in nsIUrlListener aUrlListener, in nsIMsgStatusFeedback aStatusListener, in nsIInterfaceRequestor aNotificationCallbacks, in boolean aRequestDSN, out nsIURI aURL, out nsIRequest aRequest); */
NS_IMETHODIMP nsSmtpService::SendMailMessage(nsIFile *aFilePath, const char * aRecipients, nsIMsgIdentity *aSenderIdentity, const char * aPassword, nsIUrlListener *aUrlListener, nsIMsgStatusFeedback *aStatusListener, nsIInterfaceRequestor *aNotificationCallbacks, bool aRequestDSN, nsIURI * *aURL NS_OUTPARAM, nsIRequest * *aRequest NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIURI verifyLogon (in nsISmtpServer aServer, in nsIUrlListener aListener, in nsIMsgWindow aMsgWindow); */
NS_IMETHODIMP nsSmtpService::VerifyLogon(nsISmtpServer *aServer, nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow, nsIURI * *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void GetSmtpServerByIdentity (in nsIMsgIdentity aSenderIdentity, out nsISmtpServer aServer); */
NS_IMETHODIMP nsSmtpService::GetSmtpServerByIdentity(nsIMsgIdentity *aSenderIdentity, nsISmtpServer * *aServer NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsISimpleEnumerator smtpServers; */
NS_IMETHODIMP nsSmtpService::GetSmtpServers(nsISimpleEnumerator * *aSmtpServers)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsISmtpServer defaultServer; */
NS_IMETHODIMP nsSmtpService::GetDefaultServer(nsISmtpServer * *aDefaultServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSmtpService::SetDefaultServer(nsISmtpServer *aDefaultServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsISmtpServer sessionDefaultServer; */
NS_IMETHODIMP nsSmtpService::GetSessionDefaultServer(nsISmtpServer * *aSessionDefaultServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSmtpService::SetSessionDefaultServer(nsISmtpServer *aSessionDefaultServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsISmtpServer createSmtpServer (); */
NS_IMETHODIMP nsSmtpService::CreateSmtpServer(nsISmtpServer * *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsISmtpServer findServer (in string username, in string hostname); */
NS_IMETHODIMP nsSmtpService::FindServer(const char * username, const char * hostname, nsISmtpServer * *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsISmtpServer getServerByKey (in string key); */
NS_IMETHODIMP nsSmtpService::GetServerByKey(const char * key, nsISmtpServer * *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void deleteSmtpServer (in nsISmtpServer server); */
NS_IMETHODIMP nsSmtpService::DeleteSmtpServer(nsISmtpServer *server)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsISmtpService_h__ */
