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

#ifndef __gen_mozIPersonalDictionary_h__
#define __gen_mozIPersonalDictionary_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

/* starting interface:    mozIPersonalDictionary */
#define MOZIPERSONALDICTIONARY_IID_STR "24c87207-ad7b-40e0-a074-b5401d9925e6"

#define MOZIPERSONALDICTIONARY_IID \
  {0x24c87207, 0xad7b, 0x40e0, \
    { 0xa0, 0x74, 0xb5, 0x40, 0x1d, 0x99, 0x25, 0xe6 }}

/**
  This interface represents a Personal Dictionary.
*/
class NS_NO_VTABLE mozIPersonalDictionary : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(MOZIPERSONALDICTIONARY_IID)

  /* attribute wstring language; */
  NS_IMETHOD GetLanguage(PRUnichar * *aLanguage) = 0;
  NS_IMETHOD SetLanguage(const PRUnichar * aLanguage) = 0;

  /* attribute wstring charset; */
  NS_IMETHOD GetCharset(PRUnichar * *aCharset) = 0;
  NS_IMETHOD SetCharset(const PRUnichar * aCharset) = 0;

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

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

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

  /* void GetWordList ([array, size_is (count)] out wstring words, out PRUint32 count); */
  NS_IMETHOD GetWordList(PRUnichar ***words, PRUint32 *count) = 0;

  /* boolean CheckUnicode (in wstring word); */
  NS_IMETHOD CheckUnicode(const PRUnichar *word, PRBool *_retval) = 0;

  /* boolean Check (in string word); */
  NS_IMETHOD Check(const char *word, PRBool *_retval) = 0;

  /* void AddWord (in wstring word, in wstring lang); */
  NS_IMETHOD AddWord(const PRUnichar *word, const PRUnichar *lang) = 0;

  /* void RemoveWord (in wstring word, in wstring lang); */
  NS_IMETHOD RemoveWord(const PRUnichar *word, const PRUnichar *lang) = 0;

  /* void IgnoreWord (in wstring word); */
  NS_IMETHOD IgnoreWord(const PRUnichar *word) = 0;

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

  /** These three functions are here in case we want to store previous 
   *  misspellings and return them at the head of the misspell list.
   */
  /* void AddCorrection (in wstring word, in wstring correction, in wstring lang); */
  NS_IMETHOD AddCorrection(const PRUnichar *word, const PRUnichar *correction, const PRUnichar *lang) = 0;

  /* void RemoveCorrection (in wstring word, in wstring correction, in wstring lang); */
  NS_IMETHOD RemoveCorrection(const PRUnichar *word, const PRUnichar *correction, const PRUnichar *lang) = 0;

  /* void GetCorrection (in wstring word, [array, size_is (count)] out wstring words, out PRUint32 count); */
  NS_IMETHOD GetCorrection(const PRUnichar *word, PRUnichar ***words, PRUint32 *count) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_MOZIPERSONALDICTIONARY \
  NS_IMETHOD GetLanguage(PRUnichar * *aLanguage); \
  NS_IMETHOD SetLanguage(const PRUnichar * aLanguage); \
  NS_IMETHOD GetCharset(PRUnichar * *aCharset); \
  NS_IMETHOD SetCharset(const PRUnichar * aCharset); \
  NS_IMETHOD Init(void); \
  NS_IMETHOD Load(void); \
  NS_IMETHOD Save(void); \
  NS_IMETHOD GetWordList(PRUnichar ***words, PRUint32 *count); \
  NS_IMETHOD CheckUnicode(const PRUnichar *word, PRBool *_retval); \
  NS_IMETHOD Check(const char *word, PRBool *_retval); \
  NS_IMETHOD AddWord(const PRUnichar *word, const PRUnichar *lang); \
  NS_IMETHOD RemoveWord(const PRUnichar *word, const PRUnichar *lang); \
  NS_IMETHOD IgnoreWord(const PRUnichar *word); \
  NS_IMETHOD EndSession(void); \
  NS_IMETHOD AddCorrection(const PRUnichar *word, const PRUnichar *correction, const PRUnichar *lang); \
  NS_IMETHOD RemoveCorrection(const PRUnichar *word, const PRUnichar *correction, const PRUnichar *lang); \
  NS_IMETHOD GetCorrection(const PRUnichar *word, PRUnichar ***words, PRUint32 *count); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_MOZIPERSONALDICTIONARY(_to) \
  NS_IMETHOD GetLanguage(PRUnichar * *aLanguage) { return _to GetLanguage(aLanguage); } \
  NS_IMETHOD SetLanguage(const PRUnichar * aLanguage) { return _to SetLanguage(aLanguage); } \
  NS_IMETHOD GetCharset(PRUnichar * *aCharset) { return _to GetCharset(aCharset); } \
  NS_IMETHOD SetCharset(const PRUnichar * aCharset) { return _to SetCharset(aCharset); } \
  NS_IMETHOD Init(void) { return _to Init(); } \
  NS_IMETHOD Load(void) { return _to Load(); } \
  NS_IMETHOD Save(void) { return _to Save(); } \
  NS_IMETHOD GetWordList(PRUnichar ***words, PRUint32 *count) { return _to GetWordList(words, count); } \
  NS_IMETHOD CheckUnicode(const PRUnichar *word, PRBool *_retval) { return _to CheckUnicode(word, _retval); } \
  NS_IMETHOD Check(const char *word, PRBool *_retval) { return _to Check(word, _retval); } \
  NS_IMETHOD AddWord(const PRUnichar *word, const PRUnichar *lang) { return _to AddWord(word, lang); } \
  NS_IMETHOD RemoveWord(const PRUnichar *word, const PRUnichar *lang) { return _to RemoveWord(word, lang); } \
  NS_IMETHOD IgnoreWord(const PRUnichar *word) { return _to IgnoreWord(word); } \
  NS_IMETHOD EndSession(void) { return _to EndSession(); } \
  NS_IMETHOD AddCorrection(const PRUnichar *word, const PRUnichar *correction, const PRUnichar *lang) { return _to AddCorrection(word, correction, lang); } \
  NS_IMETHOD RemoveCorrection(const PRUnichar *word, const PRUnichar *correction, const PRUnichar *lang) { return _to RemoveCorrection(word, correction, lang); } \
  NS_IMETHOD GetCorrection(const PRUnichar *word, PRUnichar ***words, PRUint32 *count) { return _to GetCorrection(word, words, count); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_MOZIPERSONALDICTIONARY(_to) \
  NS_IMETHOD GetLanguage(PRUnichar * *aLanguage) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLanguage(aLanguage); } \
  NS_IMETHOD SetLanguage(const PRUnichar * aLanguage) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLanguage(aLanguage); } \
  NS_IMETHOD GetCharset(PRUnichar * *aCharset) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCharset(aCharset); } \
  NS_IMETHOD SetCharset(const PRUnichar * aCharset) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCharset(aCharset); } \
  NS_IMETHOD Init(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Init(); } \
  NS_IMETHOD Load(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Load(); } \
  NS_IMETHOD Save(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Save(); } \
  NS_IMETHOD GetWordList(PRUnichar ***words, PRUint32 *count) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWordList(words, count); } \
  NS_IMETHOD CheckUnicode(const PRUnichar *word, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->CheckUnicode(word, _retval); } \
  NS_IMETHOD Check(const char *word, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Check(word, _retval); } \
  NS_IMETHOD AddWord(const PRUnichar *word, const PRUnichar *lang) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddWord(word, lang); } \
  NS_IMETHOD RemoveWord(const PRUnichar *word, const PRUnichar *lang) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveWord(word, lang); } \
  NS_IMETHOD IgnoreWord(const PRUnichar *word) { return !_to ? NS_ERROR_NULL_POINTER : _to->IgnoreWord(word); } \
  NS_IMETHOD EndSession(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->EndSession(); } \
  NS_IMETHOD AddCorrection(const PRUnichar *word, const PRUnichar *correction, const PRUnichar *lang) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddCorrection(word, correction, lang); } \
  NS_IMETHOD RemoveCorrection(const PRUnichar *word, const PRUnichar *correction, const PRUnichar *lang) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveCorrection(word, correction, lang); } \
  NS_IMETHOD GetCorrection(const PRUnichar *word, PRUnichar ***words, PRUint32 *count) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCorrection(word, words, count); } 

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

/* Header file */
class _MYCLASS_ : public mozIPersonalDictionary
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_MOZIPERSONALDICTIONARY

  _MYCLASS_();
  virtual ~_MYCLASS_();
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, mozIPersonalDictionary)

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

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

/* attribute wstring language; */
NS_IMETHODIMP _MYCLASS_::GetLanguage(PRUnichar * *aLanguage)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetLanguage(const PRUnichar * aLanguage)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring charset; */
NS_IMETHODIMP _MYCLASS_::GetCharset(PRUnichar * *aCharset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetCharset(const PRUnichar * aCharset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void Init (); */
NS_IMETHODIMP _MYCLASS_::Init()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void Load (); */
NS_IMETHODIMP _MYCLASS_::Load()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void Save (); */
NS_IMETHODIMP _MYCLASS_::Save()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void GetWordList ([array, size_is (count)] out wstring words, out PRUint32 count); */
NS_IMETHODIMP _MYCLASS_::GetWordList(PRUnichar ***words, PRUint32 *count)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean CheckUnicode (in wstring word); */
NS_IMETHODIMP _MYCLASS_::CheckUnicode(const PRUnichar *word, PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean Check (in string word); */
NS_IMETHODIMP _MYCLASS_::Check(const char *word, PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void AddWord (in wstring word, in wstring lang); */
NS_IMETHODIMP _MYCLASS_::AddWord(const PRUnichar *word, const PRUnichar *lang)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void RemoveWord (in wstring word, in wstring lang); */
NS_IMETHODIMP _MYCLASS_::RemoveWord(const PRUnichar *word, const PRUnichar *lang)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void IgnoreWord (in wstring word); */
NS_IMETHODIMP _MYCLASS_::IgnoreWord(const PRUnichar *word)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void EndSession (); */
NS_IMETHODIMP _MYCLASS_::EndSession()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void AddCorrection (in wstring word, in wstring correction, in wstring lang); */
NS_IMETHODIMP _MYCLASS_::AddCorrection(const PRUnichar *word, const PRUnichar *correction, const PRUnichar *lang)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void RemoveCorrection (in wstring word, in wstring correction, in wstring lang); */
NS_IMETHODIMP _MYCLASS_::RemoveCorrection(const PRUnichar *word, const PRUnichar *correction, const PRUnichar *lang)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void GetCorrection (in wstring word, [array, size_is (count)] out wstring words, out PRUint32 count); */
NS_IMETHODIMP _MYCLASS_::GetCorrection(const PRUnichar *word, PRUnichar ***words, PRUint32 *count)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_mozIPersonalDictionary_h__ */
