/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM h:/projects/mozilla/mozilla/profile/pref-migrator/public/nsIPrefMigration.idl
 */

#ifndef __gen_nsIPrefMigration_h__
#define __gen_nsIPrefMigration_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
#define NS_PROFILEMIGRATION_CONTRACTID "@mozilla.org/profile/migration;1"
#define NS_PREFCONVERTER_CONTRACTID "@mozilla.org/migration/pref-converter;1"
#define NS_ERROR_NOT_ENOUGH_SPACE_TO_MIGRATE NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_MAILNEWS, 1) 
/* these are hard coded, in ascii, as they will be used for directory folder names on disk.  NEW_LOCAL_MAIL_DIR_NAME is also used as the host name for the local folders account */
#define NEW_MAIL_DIR_NAME "Mail"
#define NEW_NEWS_DIR_NAME "News"
#define NEW_IMAPMAIL_DIR_NAME "ImapMail"
#define NEW_LOCAL_MAIL_DIR_NAME "Local Folders"
#if defined(XP_UNIX) && !defined(XP_MACOSX)
#define PREF_FILE_NAME_IN_4x "preferences.js"
#elif defined(XP_MAC) || defined(XP_MACOSX)
#define PREF_FILE_NAME_IN_4x "Netscape Preferences"
#elif defined(XP_WIN) || defined(XP_OS2)
#define PREF_FILE_NAME_IN_4x "prefs.js"
#else
/* this will cause a failure at run time, as it should, since we don't know
   how to migrate platforms other than Mac, Windows and UNIX */
#define PREF_FILE_NAME_IN_4x ""
#endif /* XP_UNIX */

/* starting interface:    nsIPrefMigration */
#define NS_IPREFMIGRATION_IID_STR "85c86e4c-6a6c-11d3-9a55-004005263078"

#define NS_IPREFMIGRATION_IID \
  {0x85c86e4c, 0x6a6c, 0x11d3, \
    { 0x9a, 0x55, 0x00, 0x40, 0x05, 0x26, 0x30, 0x78 }}

class NS_NO_VTABLE nsIPrefMigration : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IPREFMIGRATION_IID)

  /* void AddProfilePaths (in string oldProfilePathStr, in string newProfilePathStr); */
  NS_IMETHOD AddProfilePaths(const char *oldProfilePathStr, const char *newProfilePathStr) = 0;

  /* void ProcessPrefs (in boolean showProgressAsModalWindow); */
  NS_IMETHOD ProcessPrefs(PRBool showProgressAsModalWindow) = 0;

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

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

  /**
   * this should be in a separate interface
   **/
  /* void WindowCloseCallback (); */
  NS_IMETHOD WindowCloseCallback(void) = 0;

  /* void ShowSpaceDialog (out PRInt32 choice); */
  NS_IMETHOD ShowSpaceDialog(PRInt32 *choice) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIPREFMIGRATION \
  NS_IMETHOD AddProfilePaths(const char *oldProfilePathStr, const char *newProfilePathStr); \
  NS_IMETHOD ProcessPrefs(PRBool showProgressAsModalWindow); \
  NS_IMETHOD ProcessPrefsFromJS(void); \
  NS_IMETHOD GetError(void); \
  NS_IMETHOD WindowCloseCallback(void); \
  NS_IMETHOD ShowSpaceDialog(PRInt32 *choice); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIPREFMIGRATION(_to) \
  NS_IMETHOD AddProfilePaths(const char *oldProfilePathStr, const char *newProfilePathStr) { return _to AddProfilePaths(oldProfilePathStr, newProfilePathStr); } \
  NS_IMETHOD ProcessPrefs(PRBool showProgressAsModalWindow) { return _to ProcessPrefs(showProgressAsModalWindow); } \
  NS_IMETHOD ProcessPrefsFromJS(void) { return _to ProcessPrefsFromJS(); } \
  NS_IMETHOD GetError(void) { return _to GetError(); } \
  NS_IMETHOD WindowCloseCallback(void) { return _to WindowCloseCallback(); } \
  NS_IMETHOD ShowSpaceDialog(PRInt32 *choice) { return _to ShowSpaceDialog(choice); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIPREFMIGRATION(_to) \
  NS_IMETHOD AddProfilePaths(const char *oldProfilePathStr, const char *newProfilePathStr) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddProfilePaths(oldProfilePathStr, newProfilePathStr); } \
  NS_IMETHOD ProcessPrefs(PRBool showProgressAsModalWindow) { return !_to ? NS_ERROR_NULL_POINTER : _to->ProcessPrefs(showProgressAsModalWindow); } \
  NS_IMETHOD ProcessPrefsFromJS(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ProcessPrefsFromJS(); } \
  NS_IMETHOD GetError(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetError(); } \
  NS_IMETHOD WindowCloseCallback(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->WindowCloseCallback(); } \
  NS_IMETHOD ShowSpaceDialog(PRInt32 *choice) { return !_to ? NS_ERROR_NULL_POINTER : _to->ShowSpaceDialog(choice); } 

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

/* Header file */
class nsPrefMigration : public nsIPrefMigration
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIPREFMIGRATION

  nsPrefMigration();

private:
  ~nsPrefMigration();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsPrefMigration, nsIPrefMigration)

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

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

/* void AddProfilePaths (in string oldProfilePathStr, in string newProfilePathStr); */
NS_IMETHODIMP nsPrefMigration::AddProfilePaths(const char *oldProfilePathStr, const char *newProfilePathStr)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void ProcessPrefs (in boolean showProgressAsModalWindow); */
NS_IMETHODIMP nsPrefMigration::ProcessPrefs(PRBool showProgressAsModalWindow)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void ProcessPrefsFromJS (); */
NS_IMETHODIMP nsPrefMigration::ProcessPrefsFromJS()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void GetError (); */
NS_IMETHODIMP nsPrefMigration::GetError()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void WindowCloseCallback (); */
NS_IMETHODIMP nsPrefMigration::WindowCloseCallback()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void ShowSpaceDialog (out PRInt32 choice); */
NS_IMETHODIMP nsPrefMigration::ShowSpaceDialog(PRInt32 *choice)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    nsIPrefConverter */
#define NS_IPREFCONVERTER_IID_STR "88fabfa4-1dd2-11b2-94a1-902f0abd94b1"

#define NS_IPREFCONVERTER_IID \
  {0x88fabfa4, 0x1dd2, 0x11b2, \
    { 0x94, 0xa1, 0x90, 0x2f, 0x0a, 0xbd, 0x94, 0xb1 }}

class NS_NO_VTABLE nsIPrefConverter : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IPREFCONVERTER_IID)

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

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIPREFCONVERTER \
  NS_IMETHOD ConvertPrefsToUTF8(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIPREFCONVERTER(_to) \
  NS_IMETHOD ConvertPrefsToUTF8(void) { return _to ConvertPrefsToUTF8(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIPREFCONVERTER(_to) \
  NS_IMETHOD ConvertPrefsToUTF8(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ConvertPrefsToUTF8(); } 

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

/* Header file */
class nsPrefConverter : public nsIPrefConverter
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIPREFCONVERTER

  nsPrefConverter();

private:
  ~nsPrefConverter();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsPrefConverter, nsIPrefConverter)

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

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

/* void ConvertPrefsToUTF8 (); */
NS_IMETHODIMP nsPrefConverter::ConvertPrefsToUTF8()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIPrefMigration_h__ */
