/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM ../../../dist/idl/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 "1b11b532-1527-4fc0-a00f-4ce7e6886419"

#define NS_ISMTPSERVICE_IID \
  {0x1b11b532, 0x1527, 0x4fc0, \
    { 0xa0, 0x0f, 0x4c, 0xe7, 0xe6, 0x88, 0x64, 0x19 }}

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 getServerByIdentity (in nsIMsgIdentity aSenderIdentity, out nsISmtpServer aServer); */
  NS_IMETHOD GetServerByIdentity(nsIMsgIdentity *aSenderIdentity, nsISmtpServer * *aServer) = 0;

  /* readonly attribute nsISimpleEnumerator servers; */
  NS_IMETHOD GetServers(nsISimpleEnumerator * *aServers) = 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 createServer (); */
  NS_IMETHOD CreateServer(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 deleteServer (in nsISmtpServer server); */
  NS_IMETHOD DeleteServer(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) override; \
  NS_IMETHOD VerifyLogon(nsISmtpServer *aServer, nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow, nsIURI * *_retval) override; \
  NS_IMETHOD GetServerByIdentity(nsIMsgIdentity *aSenderIdentity, nsISmtpServer * *aServer) override; \
  NS_IMETHOD GetServers(nsISimpleEnumerator * *aServers) override; \
  NS_IMETHOD GetDefaultServer(nsISmtpServer * *aDefaultServer) override; \
  NS_IMETHOD SetDefaultServer(nsISmtpServer *aDefaultServer) override; \
  NS_IMETHOD GetSessionDefaultServer(nsISmtpServer * *aSessionDefaultServer) override; \
  NS_IMETHOD SetSessionDefaultServer(nsISmtpServer *aSessionDefaultServer) override; \
  NS_IMETHOD CreateServer(nsISmtpServer * *_retval) override; \
  NS_IMETHOD FindServer(const char * username, const char * hostname, nsISmtpServer * *_retval) override; \
  NS_IMETHOD GetServerByKey(const char * key, nsISmtpServer * *_retval) override; \
  NS_IMETHOD DeleteServer(nsISmtpServer *server) override; 

/* Use this macro when declaring the members of this interface when the
   class doesn't implement the interface. This is useful for forwarding. */
#define NS_DECL_NON_VIRTUAL_NSISMTPSERVICE \
  NS_METHOD SendMailMessage(nsIFile *aFilePath, const char * aRecipients, nsIMsgIdentity *aSenderIdentity, const char * aPassword, nsIUrlListener *aUrlListener, nsIMsgStatusFeedback *aStatusListener, nsIInterfaceRequestor *aNotificationCallbacks, bool aRequestDSN, nsIURI * *aURL, nsIRequest * *aRequest); \
  NS_METHOD VerifyLogon(nsISmtpServer *aServer, nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow, nsIURI * *_retval); \
  NS_METHOD GetServerByIdentity(nsIMsgIdentity *aSenderIdentity, nsISmtpServer * *aServer); \
  NS_METHOD GetServers(nsISimpleEnumerator * *aServers); \
  NS_METHOD GetDefaultServer(nsISmtpServer * *aDefaultServer); \
  NS_METHOD SetDefaultServer(nsISmtpServer *aDefaultServer); \
  NS_METHOD GetSessionDefaultServer(nsISmtpServer * *aSessionDefaultServer); \
  NS_METHOD SetSessionDefaultServer(nsISmtpServer *aSessionDefaultServer); \
  NS_METHOD CreateServer(nsISmtpServer * *_retval); \
  NS_METHOD FindServer(const char * username, const char * hostname, nsISmtpServer * *_retval); \
  NS_METHOD GetServerByKey(const char * key, nsISmtpServer * *_retval); \
  NS_METHOD DeleteServer(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) override { return _to SendMailMessage(aFilePath, aRecipients, aSenderIdentity, aPassword, aUrlListener, aStatusListener, aNotificationCallbacks, aRequestDSN, aURL, aRequest); } \
  NS_IMETHOD VerifyLogon(nsISmtpServer *aServer, nsIUrlListener *aListener, nsIMsgWindow *aMsgWindow, nsIURI * *_retval) override { return _to VerifyLogon(aServer, aListener, aMsgWindow, _retval); } \
  NS_IMETHOD GetServerByIdentity(nsIMsgIdentity *aSenderIdentity, nsISmtpServer * *aServer) override { return _to GetServerByIdentity(aSenderIdentity, aServer); } \
  NS_IMETHOD GetServers(nsISimpleEnumerator * *aServers) override { return _to GetServers(aServers); } \
  NS_IMETHOD GetDefaultServer(nsISmtpServer * *aDefaultServer) override { return _to GetDefaultServer(aDefaultServer); } \
  NS_IMETHOD SetDefaultServer(nsISmtpServer *aDefaultServer) override { return _to SetDefaultServer(aDefaultServer); } \
  NS_IMETHOD GetSessionDefaultServer(nsISmtpServer * *aSessionDefaultServer) override { return _to GetSessionDefaultServer(aSessionDefaultServer); } \
  NS_IMETHOD SetSessionDefaultServer(nsISmtpServer *aSessionDefaultServer) override { return _to SetSessionDefaultServer(aSessionDefaultServer); } \
  NS_IMETHOD CreateServer(nsISmtpServer * *_retval) override { return _to CreateServer(_retval); } \
  NS_IMETHOD FindServer(const char * username, const char * hostname, nsISmtpServer * *_retval) override { return _to FindServer(username, hostname, _retval); } \
  NS_IMETHOD GetServerByKey(const char * key, nsISmtpServer * *_retval) override { return _to GetServerByKey(key, _retval); } \
  NS_IMETHOD DeleteServer(nsISmtpServer *server) override { return _to DeleteServer(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) override { 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) override { return !_to ? NS_ERROR_NULL_POINTER : _to->VerifyLogon(aServer, aListener, aMsgWindow, _retval); } \
  NS_IMETHOD GetServerByIdentity(nsIMsgIdentity *aSenderIdentity, nsISmtpServer * *aServer) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetServerByIdentity(aSenderIdentity, aServer); } \
  NS_IMETHOD GetServers(nsISimpleEnumerator * *aServers) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetServers(aServers); } \
  NS_IMETHOD GetDefaultServer(nsISmtpServer * *aDefaultServer) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDefaultServer(aDefaultServer); } \
  NS_IMETHOD SetDefaultServer(nsISmtpServer *aDefaultServer) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDefaultServer(aDefaultServer); } \
  NS_IMETHOD GetSessionDefaultServer(nsISmtpServer * *aSessionDefaultServer) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSessionDefaultServer(aSessionDefaultServer); } \
  NS_IMETHOD SetSessionDefaultServer(nsISmtpServer *aSessionDefaultServer) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSessionDefaultServer(aSessionDefaultServer); } \
  NS_IMETHOD CreateServer(nsISmtpServer * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateServer(_retval); } \
  NS_IMETHOD FindServer(const char * username, const char * hostname, nsISmtpServer * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->FindServer(username, hostname, _retval); } \
  NS_IMETHOD GetServerByKey(const char * key, nsISmtpServer * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetServerByKey(key, _retval); } \
  NS_IMETHOD DeleteServer(nsISmtpServer *server) override { return !_to ? NS_ERROR_NULL_POINTER : _to->DeleteServer(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_ISUPPORTS(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 getServerByIdentity (in nsIMsgIdentity aSenderIdentity, out nsISmtpServer aServer); */
NS_IMETHODIMP nsSmtpService::GetServerByIdentity(nsIMsgIdentity *aSenderIdentity, nsISmtpServer * *aServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsISimpleEnumerator servers; */
NS_IMETHODIMP nsSmtpService::GetServers(nsISimpleEnumerator * *aServers)
{
    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 createServer (); */
NS_IMETHODIMP nsSmtpService::CreateServer(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 deleteServer (in nsISmtpServer server); */
NS_IMETHODIMP nsSmtpService::DeleteServer(nsISmtpServer *server)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsISmtpService_h__ */
