/*
 * 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

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
#include "nsString.h"
class nsIImportModule; /* forward declaration */

class nsIImportMailboxDescriptor; /* forward declaration */

class nsIImportABDescriptor; /* forward declaration */

class nsIImportGeneric; /* forward declaration */

class nsIImportFieldMap; /* forward declaration */


/* starting interface:    nsIImportService */
#define NS_IIMPORTSERVICE_IID_STR "50d7ea80-1726-11d3-a206-00a0cc26da63"

#define NS_IIMPORTSERVICE_IID \
  {0x50d7ea80, 0x1726, 0x11d3, \
    { 0xa2, 0x06, 0x00, 0xa0, 0xcc, 0x26, 0xda, 0x63 }}

class NS_NO_VTABLE nsIImportService : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IIMPORTSERVICE_IID)

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

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

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

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

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

  /* nsIImportModule GetModule (in string filter, in long index); */
  NS_IMETHOD GetModule(const char *filter, PRInt32 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;

  /* [noscript] void SystemStringToUnicode (in string sysStr, in nsStringRef uniStr); */
  NS_IMETHOD SystemStringToUnicode(const char *sysStr, nsString & uniStr) = 0;

  /* [noscript] void SystemStringFromUnicode (in wstring uniStr, in nsCStringRef sysStr); */
  NS_IMETHOD SystemStringFromUnicode(const PRUnichar *uniStr, nsCString & sysStr) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIIMPORTSERVICE \
  NS_IMETHOD DiscoverModules(void); \
  NS_IMETHOD GetModuleCount(const char *filter, PRInt32 *_retval); \
  NS_IMETHOD GetModuleInfo(const char *filter, PRInt32 index, PRUnichar **name, PRUnichar **description); \
  NS_IMETHOD GetModuleName(const char *filter, PRInt32 index, PRUnichar **_retval); \
  NS_IMETHOD GetModuleDescription(const char *filter, PRInt32 index, PRUnichar **_retval); \
  NS_IMETHOD GetModule(const char *filter, PRInt32 index, nsIImportModule **_retval); \
  NS_IMETHOD GetModuleWithCID(const nsCID & cid, nsIImportModule **_retval); \
  NS_IMETHOD CreateNewFieldMap(nsIImportFieldMap **_retval); \
  NS_IMETHOD CreateNewMailboxDescriptor(nsIImportMailboxDescriptor **_retval); \
  NS_IMETHOD CreateNewABDescriptor(nsIImportABDescriptor **_retval); \
  NS_IMETHOD CreateNewGenericMail(nsIImportGeneric **_retval); \
  NS_IMETHOD CreateNewGenericAddressBooks(nsIImportGeneric **_retval); \
  NS_IMETHOD SystemStringToUnicode(const char *sysStr, nsString & uniStr); \
  NS_IMETHOD SystemStringFromUnicode(const PRUnichar *uniStr, nsCString & sysStr); 

/* 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) { return _to DiscoverModules(); } \
  NS_IMETHOD GetModuleCount(const char *filter, PRInt32 *_retval) { return _to GetModuleCount(filter, _retval); } \
  NS_IMETHOD GetModuleInfo(const char *filter, PRInt32 index, PRUnichar **name, PRUnichar **description) { return _to GetModuleInfo(filter, index, name, description); } \
  NS_IMETHOD GetModuleName(const char *filter, PRInt32 index, PRUnichar **_retval) { return _to GetModuleName(filter, index, _retval); } \
  NS_IMETHOD GetModuleDescription(const char *filter, PRInt32 index, PRUnichar **_retval) { return _to GetModuleDescription(filter, index, _retval); } \
  NS_IMETHOD GetModule(const char *filter, PRInt32 index, nsIImportModule **_retval) { return _to GetModule(filter, index, _retval); } \
  NS_IMETHOD GetModuleWithCID(const nsCID & cid, nsIImportModule **_retval) { return _to GetModuleWithCID(cid, _retval); } \
  NS_IMETHOD CreateNewFieldMap(nsIImportFieldMap **_retval) { return _to CreateNewFieldMap(_retval); } \
  NS_IMETHOD CreateNewMailboxDescriptor(nsIImportMailboxDescriptor **_retval) { return _to CreateNewMailboxDescriptor(_retval); } \
  NS_IMETHOD CreateNewABDescriptor(nsIImportABDescriptor **_retval) { return _to CreateNewABDescriptor(_retval); } \
  NS_IMETHOD CreateNewGenericMail(nsIImportGeneric **_retval) { return _to CreateNewGenericMail(_retval); } \
  NS_IMETHOD CreateNewGenericAddressBooks(nsIImportGeneric **_retval) { return _to CreateNewGenericAddressBooks(_retval); } \
  NS_IMETHOD SystemStringToUnicode(const char *sysStr, nsString & uniStr) { return _to SystemStringToUnicode(sysStr, uniStr); } \
  NS_IMETHOD SystemStringFromUnicode(const PRUnichar *uniStr, nsCString & sysStr) { return _to SystemStringFromUnicode(uniStr, sysStr); } 

/* 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) { return !_to ? NS_ERROR_NULL_POINTER : _to->DiscoverModules(); } \
  NS_IMETHOD GetModuleCount(const char *filter, PRInt32 *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetModuleCount(filter, _retval); } \
  NS_IMETHOD GetModuleInfo(const char *filter, PRInt32 index, PRUnichar **name, PRUnichar **description) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetModuleInfo(filter, index, name, description); } \
  NS_IMETHOD GetModuleName(const char *filter, PRInt32 index, PRUnichar **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetModuleName(filter, index, _retval); } \
  NS_IMETHOD GetModuleDescription(const char *filter, PRInt32 index, PRUnichar **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetModuleDescription(filter, index, _retval); } \
  NS_IMETHOD GetModule(const char *filter, PRInt32 index, nsIImportModule **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetModule(filter, index, _retval); } \
  NS_IMETHOD GetModuleWithCID(const nsCID & cid, nsIImportModule **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetModuleWithCID(cid, _retval); } \
  NS_IMETHOD CreateNewFieldMap(nsIImportFieldMap **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateNewFieldMap(_retval); } \
  NS_IMETHOD CreateNewMailboxDescriptor(nsIImportMailboxDescriptor **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateNewMailboxDescriptor(_retval); } \
  NS_IMETHOD CreateNewABDescriptor(nsIImportABDescriptor **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateNewABDescriptor(_retval); } \
  NS_IMETHOD CreateNewGenericMail(nsIImportGeneric **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateNewGenericMail(_retval); } \
  NS_IMETHOD CreateNewGenericAddressBooks(nsIImportGeneric **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateNewGenericAddressBooks(_retval); } \
  NS_IMETHOD SystemStringToUnicode(const char *sysStr, nsString & uniStr) { return !_to ? NS_ERROR_NULL_POINTER : _to->SystemStringToUnicode(sysStr, uniStr); } \
  NS_IMETHOD SystemStringFromUnicode(const PRUnichar *uniStr, nsCString & sysStr) { return !_to ? NS_ERROR_NULL_POINTER : _to->SystemStringFromUnicode(uniStr, sysStr); } 

#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();
  virtual ~nsImportService();
  /* 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)
{
    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, PRUnichar **description)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

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

/* nsIImportModule GetModule (in string filter, in long index); */
NS_IMETHODIMP nsImportService::GetModule(const char *filter, PRInt32 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;
}

/* [noscript] void SystemStringToUnicode (in string sysStr, in nsStringRef uniStr); */
NS_IMETHODIMP nsImportService::SystemStringToUnicode(const char *sysStr, nsString & uniStr)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void SystemStringFromUnicode (in wstring uniStr, in nsCStringRef sysStr); */
NS_IMETHODIMP nsImportService::SystemStringFromUnicode(const PRUnichar *uniStr, nsCString & sysStr)
{
    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__ */
