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

#ifndef __gen_nsIImportService_h__
#define __gen_nsIImportService_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 nsIImportModule; /* forward declaration */

class nsIImportMailboxDescriptor; /* forward declaration */

class nsIImportABDescriptor; /* forward declaration */

class nsIImportGeneric; /* forward declaration */

class nsIImportFieldMap; /* forward declaration */

class nsIMsgSendListener; /* forward declaration */

class nsIMsgIdentity; /* forward declaration */

class nsIMsgCompFields; /* forward declaration */

class nsIArray; /* forward declaration */


/* starting interface:    nsIImportService */
#define NS_IIMPORTSERVICE_IID_STR "d0ed4c50-5997-49c9-8a6a-045f0680ed29"

#define NS_IIMPORTSERVICE_IID \
  {0xd0ed4c50, 0x5997, 0x49c9, \
    { 0x8a, 0x6a, 0x04, 0x5f, 0x06, 0x80, 0xed, 0x29 }}

class NS_NO_VTABLE nsIImportService : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IIMPORTSERVICE_IID)

  /* void DiscoverModules (); */
  NS_IMETHOD DiscoverModules(void) = 0;

  /* long GetModuleCount (in string filter); */
  NS_IMETHOD GetModuleCount(const char * filter, int32_t *_retval) = 0;

  /* void GetModuleInfo (in string filter, in long index, out wstring name, out wstring description); */
  NS_IMETHOD GetModuleInfo(const char * filter, int32_t index, char16_t * *name, char16_t * *description) = 0;

  /* wstring GetModuleName (in string filter, in long index); */
  NS_IMETHOD GetModuleName(const char * filter, int32_t index, char16_t * *_retval) = 0;

  /* wstring GetModuleDescription (in string filter, in long index); */
  NS_IMETHOD GetModuleDescription(const char * filter, int32_t index, char16_t * *_retval) = 0;

  /* nsIImportModule GetModule (in string filter, in long index); */
  NS_IMETHOD GetModule(const char * filter, int32_t index, nsIImportModule * *_retval) = 0;

  /* nsIImportModule GetModuleWithCID (in nsCIDRef cid); */
  NS_IMETHOD GetModuleWithCID(const nsCID & cid, nsIImportModule * *_retval) = 0;

  /* nsIImportFieldMap CreateNewFieldMap (); */
  NS_IMETHOD CreateNewFieldMap(nsIImportFieldMap * *_retval) = 0;

  /* nsIImportMailboxDescriptor CreateNewMailboxDescriptor (); */
  NS_IMETHOD CreateNewMailboxDescriptor(nsIImportMailboxDescriptor * *_retval) = 0;

  /* nsIImportABDescriptor CreateNewABDescriptor (); */
  NS_IMETHOD CreateNewABDescriptor(nsIImportABDescriptor * *_retval) = 0;

  /* nsIImportGeneric CreateNewGenericMail (); */
  NS_IMETHOD CreateNewGenericMail(nsIImportGeneric * *_retval) = 0;

  /* nsIImportGeneric CreateNewGenericAddressBooks (); */
  NS_IMETHOD CreateNewGenericAddressBooks(nsIImportGeneric * *_retval) = 0;

  /* void CreateRFC822Message (in nsIMsgIdentity aIdentity, in nsIMsgCompFields aMsgFields, in string aBodytype, in ACString aBody, in boolean aCreateAsDraft, in nsIArray aLoadedAttachments, in nsIArray aEmbeddedObjects, in nsIMsgSendListener aListener); */
  NS_IMETHOD CreateRFC822Message(nsIMsgIdentity *aIdentity, nsIMsgCompFields *aMsgFields, const char * aBodytype, const nsACString & aBody, bool aCreateAsDraft, nsIArray *aLoadedAttachments, nsIArray *aEmbeddedObjects, nsIMsgSendListener *aListener) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIImportService, NS_IIMPORTSERVICE_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIIMPORTSERVICE \
  NS_IMETHOD DiscoverModules(void) override; \
  NS_IMETHOD GetModuleCount(const char * filter, int32_t *_retval) override; \
  NS_IMETHOD GetModuleInfo(const char * filter, int32_t index, char16_t * *name, char16_t * *description) override; \
  NS_IMETHOD GetModuleName(const char * filter, int32_t index, char16_t * *_retval) override; \
  NS_IMETHOD GetModuleDescription(const char * filter, int32_t index, char16_t * *_retval) override; \
  NS_IMETHOD GetModule(const char * filter, int32_t index, nsIImportModule * *_retval) override; \
  NS_IMETHOD GetModuleWithCID(const nsCID & cid, nsIImportModule * *_retval) override; \
  NS_IMETHOD CreateNewFieldMap(nsIImportFieldMap * *_retval) override; \
  NS_IMETHOD CreateNewMailboxDescriptor(nsIImportMailboxDescriptor * *_retval) override; \
  NS_IMETHOD CreateNewABDescriptor(nsIImportABDescriptor * *_retval) override; \
  NS_IMETHOD CreateNewGenericMail(nsIImportGeneric * *_retval) override; \
  NS_IMETHOD CreateNewGenericAddressBooks(nsIImportGeneric * *_retval) override; \
  NS_IMETHOD CreateRFC822Message(nsIMsgIdentity *aIdentity, nsIMsgCompFields *aMsgFields, const char * aBodytype, const nsACString & aBody, bool aCreateAsDraft, nsIArray *aLoadedAttachments, nsIArray *aEmbeddedObjects, nsIMsgSendListener *aListener) 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_NSIIMPORTSERVICE \
  NS_METHOD DiscoverModules(void); \
  NS_METHOD GetModuleCount(const char * filter, int32_t *_retval); \
  NS_METHOD GetModuleInfo(const char * filter, int32_t index, char16_t * *name, char16_t * *description); \
  NS_METHOD GetModuleName(const char * filter, int32_t index, char16_t * *_retval); \
  NS_METHOD GetModuleDescription(const char * filter, int32_t index, char16_t * *_retval); \
  NS_METHOD GetModule(const char * filter, int32_t index, nsIImportModule * *_retval); \
  NS_METHOD GetModuleWithCID(const nsCID & cid, nsIImportModule * *_retval); \
  NS_METHOD CreateNewFieldMap(nsIImportFieldMap * *_retval); \
  NS_METHOD CreateNewMailboxDescriptor(nsIImportMailboxDescriptor * *_retval); \
  NS_METHOD CreateNewABDescriptor(nsIImportABDescriptor * *_retval); \
  NS_METHOD CreateNewGenericMail(nsIImportGeneric * *_retval); \
  NS_METHOD CreateNewGenericAddressBooks(nsIImportGeneric * *_retval); \
  NS_METHOD CreateRFC822Message(nsIMsgIdentity *aIdentity, nsIMsgCompFields *aMsgFields, const char * aBodytype, const nsACString & aBody, bool aCreateAsDraft, nsIArray *aLoadedAttachments, nsIArray *aEmbeddedObjects, nsIMsgSendListener *aListener); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIIMPORTSERVICE(_to) \
  NS_IMETHOD DiscoverModules(void) override { return _to DiscoverModules(); } \
  NS_IMETHOD GetModuleCount(const char * filter, int32_t *_retval) override { return _to GetModuleCount(filter, _retval); } \
  NS_IMETHOD GetModuleInfo(const char * filter, int32_t index, char16_t * *name, char16_t * *description) override { return _to GetModuleInfo(filter, index, name, description); } \
  NS_IMETHOD GetModuleName(const char * filter, int32_t index, char16_t * *_retval) override { return _to GetModuleName(filter, index, _retval); } \
  NS_IMETHOD GetModuleDescription(const char * filter, int32_t index, char16_t * *_retval) override { return _to GetModuleDescription(filter, index, _retval); } \
  NS_IMETHOD GetModule(const char * filter, int32_t index, nsIImportModule * *_retval) override { return _to GetModule(filter, index, _retval); } \
  NS_IMETHOD GetModuleWithCID(const nsCID & cid, nsIImportModule * *_retval) override { return _to GetModuleWithCID(cid, _retval); } \
  NS_IMETHOD CreateNewFieldMap(nsIImportFieldMap * *_retval) override { return _to CreateNewFieldMap(_retval); } \
  NS_IMETHOD CreateNewMailboxDescriptor(nsIImportMailboxDescriptor * *_retval) override { return _to CreateNewMailboxDescriptor(_retval); } \
  NS_IMETHOD CreateNewABDescriptor(nsIImportABDescriptor * *_retval) override { return _to CreateNewABDescriptor(_retval); } \
  NS_IMETHOD CreateNewGenericMail(nsIImportGeneric * *_retval) override { return _to CreateNewGenericMail(_retval); } \
  NS_IMETHOD CreateNewGenericAddressBooks(nsIImportGeneric * *_retval) override { return _to CreateNewGenericAddressBooks(_retval); } \
  NS_IMETHOD CreateRFC822Message(nsIMsgIdentity *aIdentity, nsIMsgCompFields *aMsgFields, const char * aBodytype, const nsACString & aBody, bool aCreateAsDraft, nsIArray *aLoadedAttachments, nsIArray *aEmbeddedObjects, nsIMsgSendListener *aListener) override { return _to CreateRFC822Message(aIdentity, aMsgFields, aBodytype, aBody, aCreateAsDraft, aLoadedAttachments, aEmbeddedObjects, aListener); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIIMPORTSERVICE(_to) \
  NS_IMETHOD DiscoverModules(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->DiscoverModules(); } \
  NS_IMETHOD GetModuleCount(const char * filter, int32_t *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetModuleCount(filter, _retval); } \
  NS_IMETHOD GetModuleInfo(const char * filter, int32_t index, char16_t * *name, char16_t * *description) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetModuleInfo(filter, index, name, description); } \
  NS_IMETHOD GetModuleName(const char * filter, int32_t index, char16_t * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetModuleName(filter, index, _retval); } \
  NS_IMETHOD GetModuleDescription(const char * filter, int32_t index, char16_t * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetModuleDescription(filter, index, _retval); } \
  NS_IMETHOD GetModule(const char * filter, int32_t index, nsIImportModule * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetModule(filter, index, _retval); } \
  NS_IMETHOD GetModuleWithCID(const nsCID & cid, nsIImportModule * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetModuleWithCID(cid, _retval); } \
  NS_IMETHOD CreateNewFieldMap(nsIImportFieldMap * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateNewFieldMap(_retval); } \
  NS_IMETHOD CreateNewMailboxDescriptor(nsIImportMailboxDescriptor * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateNewMailboxDescriptor(_retval); } \
  NS_IMETHOD CreateNewABDescriptor(nsIImportABDescriptor * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateNewABDescriptor(_retval); } \
  NS_IMETHOD CreateNewGenericMail(nsIImportGeneric * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateNewGenericMail(_retval); } \
  NS_IMETHOD CreateNewGenericAddressBooks(nsIImportGeneric * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateNewGenericAddressBooks(_retval); } \
  NS_IMETHOD CreateRFC822Message(nsIMsgIdentity *aIdentity, nsIMsgCompFields *aMsgFields, const char * aBodytype, const nsACString & aBody, bool aCreateAsDraft, nsIArray *aLoadedAttachments, nsIArray *aEmbeddedObjects, nsIMsgSendListener *aListener) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateRFC822Message(aIdentity, aMsgFields, aBodytype, aBody, aCreateAsDraft, aLoadedAttachments, aEmbeddedObjects, aListener); } 

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

/* Header file */
class nsImportService : public nsIImportService
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIIMPORTSERVICE

  nsImportService();

private:
  ~nsImportService();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsImportService, nsIImportService)

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

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

/* void DiscoverModules (); */
NS_IMETHODIMP nsImportService::DiscoverModules()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* long GetModuleCount (in string filter); */
NS_IMETHODIMP nsImportService::GetModuleCount(const char * filter, int32_t *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void GetModuleInfo (in string filter, in long index, out wstring name, out wstring description); */
NS_IMETHODIMP nsImportService::GetModuleInfo(const char * filter, int32_t index, char16_t * *name, char16_t * *description)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* wstring GetModuleName (in string filter, in long index); */
NS_IMETHODIMP nsImportService::GetModuleName(const char * filter, int32_t index, char16_t * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* wstring GetModuleDescription (in string filter, in long index); */
NS_IMETHODIMP nsImportService::GetModuleDescription(const char * filter, int32_t index, char16_t * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIImportModule GetModule (in string filter, in long index); */
NS_IMETHODIMP nsImportService::GetModule(const char * filter, int32_t index, nsIImportModule * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIImportModule GetModuleWithCID (in nsCIDRef cid); */
NS_IMETHODIMP nsImportService::GetModuleWithCID(const nsCID & cid, nsIImportModule * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIImportFieldMap CreateNewFieldMap (); */
NS_IMETHODIMP nsImportService::CreateNewFieldMap(nsIImportFieldMap * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIImportMailboxDescriptor CreateNewMailboxDescriptor (); */
NS_IMETHODIMP nsImportService::CreateNewMailboxDescriptor(nsIImportMailboxDescriptor * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIImportABDescriptor CreateNewABDescriptor (); */
NS_IMETHODIMP nsImportService::CreateNewABDescriptor(nsIImportABDescriptor * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIImportGeneric CreateNewGenericMail (); */
NS_IMETHODIMP nsImportService::CreateNewGenericMail(nsIImportGeneric * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIImportGeneric CreateNewGenericAddressBooks (); */
NS_IMETHODIMP nsImportService::CreateNewGenericAddressBooks(nsIImportGeneric * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void CreateRFC822Message (in nsIMsgIdentity aIdentity, in nsIMsgCompFields aMsgFields, in string aBodytype, in ACString aBody, in boolean aCreateAsDraft, in nsIArray aLoadedAttachments, in nsIArray aEmbeddedObjects, in nsIMsgSendListener aListener); */
NS_IMETHODIMP nsImportService::CreateRFC822Message(nsIMsgIdentity *aIdentity, nsIMsgCompFields *aMsgFields, const char * aBodytype, const nsACString & aBody, bool aCreateAsDraft, nsIArray *aLoadedAttachments, nsIArray *aEmbeddedObjects, nsIMsgSendListener *aListener)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

#define NS_IMPORTSERVICE_CID              \
{ /* 5df96d60-1726-11d3-a206-00a0cc26da63 */      \
   0x5df96d60, 0x1726, 0x11d3,                   \
   {0xa2, 0x06, 0x0, 0xa0, 0xcc, 0x26, 0xda, 0x63}}
#define NS_IMPORTSERVICE_CONTRACTID "@mozilla.org/import/import-service;1"

#endif /* __gen_nsIImportService_h__ */
