/*
 * 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 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_IMETHOD SendMailMessage(nsIFile *aFilePath, const char * aRecipients, nsIMsgIdentity *aSenderIdentity, const char * aPassword, nsIUrlListener *aUrlListener, nsIMsgStatusFeedback *aStatusListener, nsIInterfaceRequestor *aNotificationCallbacks, bool aRequestDSN, nsIURI * *aURL, nsIRequest * *aRequest) = 0;

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

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

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

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

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

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

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

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

  /* void deleteSmtpServer (in nsISmtpServer server); */
  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_IMETHOD SendMailMessage(nsIFile *aFilePath, const char * aRecipients, nsIMsgIdentity *aSenderIdentity, const char * aPassword, nsIUrlListener *aUrlListener, nsIMsgStatusFeedback *aStatusListener, nsIInterfaceRequestor *aNotificationCallbacks, bool aRequestDSN, nsIURI * *aURL, nsIRequest * *aRequest); \
  NS_IMETHOD VerifyLogon(nsISmtpServer *aServer, nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow, nsIURI * *_retval); \
  NS_IMETHOD GetSmtpServerByIdentity(nsIMsgIdentity *aSenderIdentity, nsISmtpServer * *aServer); \
  NS_IMETHOD GetSmtpServers(nsISimpleEnumerator * *aSmtpServers); \
  NS_IMETHOD GetDefaultServer(nsISmtpServer * *aDefaultServer); \
  NS_IMETHOD SetDefaultServer(nsISmtpServer *aDefaultServer); \
  NS_IMETHOD GetSessionDefaultServer(nsISmtpServer * *aSessionDefaultServer); \
  NS_IMETHOD SetSessionDefaultServer(nsISmtpServer *aSessionDefaultServer); \
  NS_IMETHOD CreateSmtpServer(nsISmtpServer * *_retval); \
  NS_IMETHOD FindServer(const char * username, const char * hostname, nsISmtpServer * *_retval); \
  NS_IMETHOD GetServerByKey(const char * key, nsISmtpServer * *_retval); \
  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_IMETHOD SendMailMessage(nsIFile *aFilePath, const char * aRecipients, nsIMsgIdentity *aSenderIdentity, const char * aPassword, nsIUrlListener *aUrlListener, nsIMsgStatusFeedback *aStatusListener, nsIInterfaceRequestor *aNotificationCallbacks, bool aRequestDSN, nsIURI * *aURL, nsIRequest * *aRequest) { return _to SendMailMessage(aFilePath, aRecipients, aSenderIdentity, aPassword, aUrlListener, aStatusListener, aNotificationCallbacks, aRequestDSN, aURL, aRequest); } \
  NS_IMETHOD VerifyLogon(nsISmtpServer *aServer, nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow, nsIURI * *_retval) { return _to VerifyLogon(aServer, aListener, aMsgWindow, _retval); } \
  NS_IMETHOD GetSmtpServerByIdentity(nsIMsgIdentity *aSenderIdentity, nsISmtpServer * *aServer) { return _to GetSmtpServerByIdentity(aSenderIdentity, aServer); } \
  NS_IMETHOD GetSmtpServers(nsISimpleEnumerator * *aSmtpServers) { return _to GetSmtpServers(aSmtpServers); } \
  NS_IMETHOD GetDefaultServer(nsISmtpServer * *aDefaultServer) { return _to GetDefaultServer(aDefaultServer); } \
  NS_IMETHOD SetDefaultServer(nsISmtpServer *aDefaultServer) { return _to SetDefaultServer(aDefaultServer); } \
  NS_IMETHOD GetSessionDefaultServer(nsISmtpServer * *aSessionDefaultServer) { return _to GetSessionDefaultServer(aSessionDefaultServer); } \
  NS_IMETHOD SetSessionDefaultServer(nsISmtpServer *aSessionDefaultServer) { return _to SetSessionDefaultServer(aSessionDefaultServer); } \
  NS_IMETHOD CreateSmtpServer(nsISmtpServer * *_retval) { return _to CreateSmtpServer(_retval); } \
  NS_IMETHOD FindServer(const char * username, const char * hostname, nsISmtpServer * *_retval) { return _to FindServer(username, hostname, _retval); } \
  NS_IMETHOD GetServerByKey(const char * key, nsISmtpServer * *_retval) { return _to GetServerByKey(key, _retval); } \
  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_IMETHOD SendMailMessage(nsIFile *aFilePath, const char * aRecipients, nsIMsgIdentity *aSenderIdentity, const char * aPassword, nsIUrlListener *aUrlListener, nsIMsgStatusFeedback *aStatusListener, nsIInterfaceRequestor *aNotificationCallbacks, bool aRequestDSN, nsIURI * *aURL, nsIRequest * *aRequest) { return !_to ? NS_ERROR_NULL_POINTER : _to->SendMailMessage(aFilePath, aRecipients, aSenderIdentity, aPassword, aUrlListener, aStatusListener, aNotificationCallbacks, aRequestDSN, aURL, aRequest); } \
  NS_IMETHOD VerifyLogon(nsISmtpServer *aServer, nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow, nsIURI * *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->VerifyLogon(aServer, aListener, aMsgWindow, _retval); } \
  NS_IMETHOD GetSmtpServerByIdentity(nsIMsgIdentity *aSenderIdentity, nsISmtpServer * *aServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSmtpServerByIdentity(aSenderIdentity, aServer); } \
  NS_IMETHOD GetSmtpServers(nsISimpleEnumerator * *aSmtpServers) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSmtpServers(aSmtpServers); } \
  NS_IMETHOD GetDefaultServer(nsISmtpServer * *aDefaultServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDefaultServer(aDefaultServer); } \
  NS_IMETHOD SetDefaultServer(nsISmtpServer *aDefaultServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDefaultServer(aDefaultServer); } \
  NS_IMETHOD GetSessionDefaultServer(nsISmtpServer * *aSessionDefaultServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSessionDefaultServer(aSessionDefaultServer); } \
  NS_IMETHOD SetSessionDefaultServer(nsISmtpServer *aSessionDefaultServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSessionDefaultServer(aSessionDefaultServer); } \
  NS_IMETHOD CreateSmtpServer(nsISmtpServer * *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateSmtpServer(_retval); } \
  NS_IMETHOD FindServer(const char * username, const char * hostname, nsISmtpServer * *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->FindServer(username, hostname, _retval); } \
  NS_IMETHOD GetServerByKey(const char * key, nsISmtpServer * *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetServerByKey(key, _retval); } \
  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, nsIRequest * *aRequest)
{
    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)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void GetSmtpServerByIdentity (in nsIMsgIdentity aSenderIdentity, out nsISmtpServer aServer); */
NS_IMETHODIMP nsSmtpService::GetSmtpServerByIdentity(nsIMsgIdentity *aSenderIdentity, nsISmtpServer * *aServer)
{
    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)
{
    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)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsISmtpServer getServerByKey (in string key); */
NS_IMETHODIMP nsSmtpService::GetServerByKey(const char * key, nsISmtpServer * *_retval)
{
    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__ */
