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

#ifndef __gen_nsIImportService_h__
#define __gen_nsIImportService_h__


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

#ifndef __gen_nsIMsgSend_h__
#include "nsIMsgSend.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 nsIMsgCompFields; /* forward declaration */

class nsIMsgSendListener; /* forward declaration */

class nsIArray; /* forward declaration */


/* starting interface:    nsIImportService */
#define NS_IIMPORTSERVICE_IID_STR "376fc4c2-76d3-4b47-8095-406260cb9b1f"

#define NS_IIMPORTSERVICE_IID \
  {0x376fc4c2, 0x76d3, 0x4b47, \
    { 0x80, 0x95, 0x40, 0x62, 0x60, 0xcb, 0x9b, 0x1f }}

class NS_NO_VTABLE NS_SCRIPTABLE nsIImportService : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IIMPORTSERVICE_IID)

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

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

  /* void GetModuleInfo (in string filter, in long index, out wstring name, out wstring description); */
  NS_SCRIPTABLE NS_IMETHOD GetModuleInfo(const char * filter, PRInt32 index, PRUnichar * *name NS_OUTPARAM, PRUnichar * *description NS_OUTPARAM) = 0;

  /* wstring GetModuleName (in string filter, in long index); */
  NS_SCRIPTABLE NS_IMETHOD GetModuleName(const char * filter, PRInt32 index, PRUnichar * *_retval NS_OUTPARAM) = 0;

  /* wstring GetModuleDescription (in string filter, in long index); */
  NS_SCRIPTABLE NS_IMETHOD GetModuleDescription(const char * filter, PRInt32 index, PRUnichar * *_retval NS_OUTPARAM) = 0;

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

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

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

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

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

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

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

  /* void CreateRFC822Message (in nsIMsgIdentity aIdentity, in nsIMsgCompFields aMsgFields, in string aBodytype, in string aBody, in unsigned long aBodyLength, in boolean aCreateAsDraft, in nsIArray aLoadedAttachments, in nsISupportsArray aEmbeddedObjects, in nsIMsgSendListener aListener); */
  NS_SCRIPTABLE NS_IMETHOD CreateRFC822Message(nsIMsgIdentity *aIdentity, nsIMsgCompFields *aMsgFields, const char * aBodytype, const char * aBody, PRUint32 aBodyLength, bool aCreateAsDraft, nsIArray *aLoadedAttachments, nsISupportsArray *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_SCRIPTABLE NS_IMETHOD DiscoverModules(void); \
  NS_SCRIPTABLE NS_IMETHOD GetModuleCount(const char * filter, PRInt32 *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetModuleInfo(const char * filter, PRInt32 index, PRUnichar * *name NS_OUTPARAM, PRUnichar * *description NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetModuleName(const char * filter, PRInt32 index, PRUnichar * *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetModuleDescription(const char * filter, PRInt32 index, PRUnichar * *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetModule(const char * filter, PRInt32 index, nsIImportModule * *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetModuleWithCID(const nsCID & cid, nsIImportModule * *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD CreateNewFieldMap(nsIImportFieldMap * *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD CreateNewMailboxDescriptor(nsIImportMailboxDescriptor * *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD CreateNewABDescriptor(nsIImportABDescriptor * *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD CreateNewGenericMail(nsIImportGeneric * *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD CreateNewGenericAddressBooks(nsIImportGeneric * *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD CreateRFC822Message(nsIMsgIdentity *aIdentity, nsIMsgCompFields *aMsgFields, const char * aBodytype, const char * aBody, PRUint32 aBodyLength, bool aCreateAsDraft, nsIArray *aLoadedAttachments, nsISupportsArray *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_SCRIPTABLE NS_IMETHOD DiscoverModules(void) { return _to DiscoverModules(); } \
  NS_SCRIPTABLE NS_IMETHOD GetModuleCount(const char * filter, PRInt32 *_retval NS_OUTPARAM) { return _to GetModuleCount(filter, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetModuleInfo(const char * filter, PRInt32 index, PRUnichar * *name NS_OUTPARAM, PRUnichar * *description NS_OUTPARAM) { return _to GetModuleInfo(filter, index, name, description); } \
  NS_SCRIPTABLE NS_IMETHOD GetModuleName(const char * filter, PRInt32 index, PRUnichar * *_retval NS_OUTPARAM) { return _to GetModuleName(filter, index, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetModuleDescription(const char * filter, PRInt32 index, PRUnichar * *_retval NS_OUTPARAM) { return _to GetModuleDescription(filter, index, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetModule(const char * filter, PRInt32 index, nsIImportModule * *_retval NS_OUTPARAM) { return _to GetModule(filter, index, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetModuleWithCID(const nsCID & cid, nsIImportModule * *_retval NS_OUTPARAM) { return _to GetModuleWithCID(cid, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD CreateNewFieldMap(nsIImportFieldMap * *_retval NS_OUTPARAM) { return _to CreateNewFieldMap(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD CreateNewMailboxDescriptor(nsIImportMailboxDescriptor * *_retval NS_OUTPARAM) { return _to CreateNewMailboxDescriptor(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD CreateNewABDescriptor(nsIImportABDescriptor * *_retval NS_OUTPARAM) { return _to CreateNewABDescriptor(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD CreateNewGenericMail(nsIImportGeneric * *_retval NS_OUTPARAM) { return _to CreateNewGenericMail(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD CreateNewGenericAddressBooks(nsIImportGeneric * *_retval NS_OUTPARAM) { return _to CreateNewGenericAddressBooks(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD CreateRFC822Message(nsIMsgIdentity *aIdentity, nsIMsgCompFields *aMsgFields, const char * aBodytype, const char * aBody, PRUint32 aBodyLength, bool aCreateAsDraft, nsIArray *aLoadedAttachments, nsISupportsArray *aEmbeddedObjects, nsIMsgSendListener *aListener) { return _to CreateRFC822Message(aIdentity, aMsgFields, aBodytype, aBody, aBodyLength, 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_SCRIPTABLE NS_IMETHOD DiscoverModules(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->DiscoverModules(); } \
  NS_SCRIPTABLE NS_IMETHOD GetModuleCount(const char * filter, PRInt32 *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetModuleCount(filter, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetModuleInfo(const char * filter, PRInt32 index, PRUnichar * *name NS_OUTPARAM, PRUnichar * *description NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetModuleInfo(filter, index, name, description); } \
  NS_SCRIPTABLE NS_IMETHOD GetModuleName(const char * filter, PRInt32 index, PRUnichar * *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetModuleName(filter, index, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetModuleDescription(const char * filter, PRInt32 index, PRUnichar * *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetModuleDescription(filter, index, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetModule(const char * filter, PRInt32 index, nsIImportModule * *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetModule(filter, index, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetModuleWithCID(const nsCID & cid, nsIImportModule * *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetModuleWithCID(cid, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD CreateNewFieldMap(nsIImportFieldMap * *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateNewFieldMap(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD CreateNewMailboxDescriptor(nsIImportMailboxDescriptor * *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateNewMailboxDescriptor(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD CreateNewABDescriptor(nsIImportABDescriptor * *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateNewABDescriptor(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD CreateNewGenericMail(nsIImportGeneric * *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateNewGenericMail(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD CreateNewGenericAddressBooks(nsIImportGeneric * *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateNewGenericAddressBooks(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD CreateRFC822Message(nsIMsgIdentity *aIdentity, nsIMsgCompFields *aMsgFields, const char * aBodytype, const char * aBody, PRUint32 aBodyLength, bool aCreateAsDraft, nsIArray *aLoadedAttachments, nsISupportsArray *aEmbeddedObjects, nsIMsgSendListener *aListener) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateRFC822Message(aIdentity, aMsgFields, aBodytype, aBody, aBodyLength, 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_ISUPPORTS1(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, PRInt32 *_retval NS_OUTPARAM)
{
    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, PRInt32 index, PRUnichar * *name NS_OUTPARAM, PRUnichar * *description NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

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

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

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

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

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

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

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

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

/* void CreateRFC822Message (in nsIMsgIdentity aIdentity, in nsIMsgCompFields aMsgFields, in string aBodytype, in string aBody, in unsigned long aBodyLength, in boolean aCreateAsDraft, in nsIArray aLoadedAttachments, in nsISupportsArray aEmbeddedObjects, in nsIMsgSendListener aListener); */
NS_IMETHODIMP nsImportService::CreateRFC822Message(nsIMsgIdentity *aIdentity, nsIMsgCompFields *aMsgFields, const char * aBodytype, const char * aBody, PRUint32 aBodyLength, bool aCreateAsDraft, nsIArray *aLoadedAttachments, nsISupportsArray *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__ */
