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

#ifndef __gen_nsIPrefBranch_h__
#define __gen_nsIPrefBranch_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:    nsIPrefBranch */
#define NS_IPREFBRANCH_IID_STR "56c35506-f14b-11d3-99d3-ddbfac2ccf65"

#define NS_IPREFBRANCH_IID \
  {0x56c35506, 0xf14b, 0x11d3, \
    { 0x99, 0xd3, 0xdd, 0xbf, 0xac, 0x2c, 0xcf, 0x65 }}

class NS_NO_VTABLE nsIPrefBranch : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IPREFBRANCH_IID)

  enum { PREF_INVALID = 0 };

  enum { PREF_LOCKED = 1 };

  enum { PREF_USER_SET = 2 };

  enum { PREF_CONFIG = 4 };

  enum { PREF_REMOTE = 8 };

  enum { PREF_LI_LOCAL = 16 };

  enum { PREF_STRING = 32 };

  enum { PREF_INT = 64 };

  enum { PREF_BOOL = 128 };

  enum { PREF_VALUE_TYPE_MASK = 224 };

  /* readonly attribute string root; */
  NS_IMETHOD GetRoot(char * *aRoot) = 0;

  /* long getPrefType (in string aPrefName); */
  NS_IMETHOD GetPrefType(const char *aPrefName, PRInt32 *_retval) = 0;

  /* boolean getBoolPref (in string aPrefName); */
  NS_IMETHOD GetBoolPref(const char *aPrefName, PRBool *_retval) = 0;

  /* void setBoolPref (in string aPrefName, in long aValue); */
  NS_IMETHOD SetBoolPref(const char *aPrefName, PRInt32 aValue) = 0;

  /* string getCharPref (in string aPrefName); */
  NS_IMETHOD GetCharPref(const char *aPrefName, char **_retval) = 0;

  /* void setCharPref (in string aPrefName, in string aValue); */
  NS_IMETHOD SetCharPref(const char *aPrefName, const char *aValue) = 0;

  /* long getIntPref (in string aPrefName); */
  NS_IMETHOD GetIntPref(const char *aPrefName, PRInt32 *_retval) = 0;

  /* void setIntPref (in string aPrefName, in long aValue); */
  NS_IMETHOD SetIntPref(const char *aPrefName, PRInt32 aValue) = 0;

  /* void getComplexValue (in string aPrefName, in nsIIDRef aType, [iid_is (aType), retval] out nsQIResult aValue); */
  NS_IMETHOD GetComplexValue(const char *aPrefName, const nsIID & aType, void * *aValue) = 0;

  /* void setComplexValue (in string aPrefName, in nsIIDRef aType, in nsISupports aValue); */
  NS_IMETHOD SetComplexValue(const char *aPrefName, const nsIID & aType, nsISupports *aValue) = 0;

  /* void clearUserPref (in string aPrefName); */
  NS_IMETHOD ClearUserPref(const char *aPrefName) = 0;

  /* void lockPref (in string aPrefName); */
  NS_IMETHOD LockPref(const char *aPrefName) = 0;

  /* boolean prefIsLocked (in string aPrefName); */
  NS_IMETHOD PrefIsLocked(const char *aPrefName, PRBool *_retval) = 0;

  /* void unlockPref (in string aPrefName); */
  NS_IMETHOD UnlockPref(const char *aPrefName) = 0;

  /* void deleteBranch (in string aStartingAt); */
  NS_IMETHOD DeleteBranch(const char *aStartingAt) = 0;

  /* void getChildList (in string aStartingAt, out unsigned long aCount, [array, size_is (aCount), retval] out string aChildArray); */
  NS_IMETHOD GetChildList(const char *aStartingAt, PRUint32 *aCount, char ***aChildArray) = 0;

  /* void resetBranch (in string aStartingAt); */
  NS_IMETHOD ResetBranch(const char *aStartingAt) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIPREFBRANCH \
  NS_IMETHOD GetRoot(char * *aRoot); \
  NS_IMETHOD GetPrefType(const char *aPrefName, PRInt32 *_retval); \
  NS_IMETHOD GetBoolPref(const char *aPrefName, PRBool *_retval); \
  NS_IMETHOD SetBoolPref(const char *aPrefName, PRInt32 aValue); \
  NS_IMETHOD GetCharPref(const char *aPrefName, char **_retval); \
  NS_IMETHOD SetCharPref(const char *aPrefName, const char *aValue); \
  NS_IMETHOD GetIntPref(const char *aPrefName, PRInt32 *_retval); \
  NS_IMETHOD SetIntPref(const char *aPrefName, PRInt32 aValue); \
  NS_IMETHOD GetComplexValue(const char *aPrefName, const nsIID & aType, void * *aValue); \
  NS_IMETHOD SetComplexValue(const char *aPrefName, const nsIID & aType, nsISupports *aValue); \
  NS_IMETHOD ClearUserPref(const char *aPrefName); \
  NS_IMETHOD LockPref(const char *aPrefName); \
  NS_IMETHOD PrefIsLocked(const char *aPrefName, PRBool *_retval); \
  NS_IMETHOD UnlockPref(const char *aPrefName); \
  NS_IMETHOD DeleteBranch(const char *aStartingAt); \
  NS_IMETHOD GetChildList(const char *aStartingAt, PRUint32 *aCount, char ***aChildArray); \
  NS_IMETHOD ResetBranch(const char *aStartingAt); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIPREFBRANCH(_to) \
  NS_IMETHOD GetRoot(char * *aRoot) { return _to ## GetRoot(aRoot); } \
  NS_IMETHOD GetPrefType(const char *aPrefName, PRInt32 *_retval) { return _to ## GetPrefType(aPrefName, _retval); } \
  NS_IMETHOD GetBoolPref(const char *aPrefName, PRBool *_retval) { return _to ## GetBoolPref(aPrefName, _retval); } \
  NS_IMETHOD SetBoolPref(const char *aPrefName, PRInt32 aValue) { return _to ## SetBoolPref(aPrefName, aValue); } \
  NS_IMETHOD GetCharPref(const char *aPrefName, char **_retval) { return _to ## GetCharPref(aPrefName, _retval); } \
  NS_IMETHOD SetCharPref(const char *aPrefName, const char *aValue) { return _to ## SetCharPref(aPrefName, aValue); } \
  NS_IMETHOD GetIntPref(const char *aPrefName, PRInt32 *_retval) { return _to ## GetIntPref(aPrefName, _retval); } \
  NS_IMETHOD SetIntPref(const char *aPrefName, PRInt32 aValue) { return _to ## SetIntPref(aPrefName, aValue); } \
  NS_IMETHOD GetComplexValue(const char *aPrefName, const nsIID & aType, void * *aValue) { return _to ## GetComplexValue(aPrefName, aType, aValue); } \
  NS_IMETHOD SetComplexValue(const char *aPrefName, const nsIID & aType, nsISupports *aValue) { return _to ## SetComplexValue(aPrefName, aType, aValue); } \
  NS_IMETHOD ClearUserPref(const char *aPrefName) { return _to ## ClearUserPref(aPrefName); } \
  NS_IMETHOD LockPref(const char *aPrefName) { return _to ## LockPref(aPrefName); } \
  NS_IMETHOD PrefIsLocked(const char *aPrefName, PRBool *_retval) { return _to ## PrefIsLocked(aPrefName, _retval); } \
  NS_IMETHOD UnlockPref(const char *aPrefName) { return _to ## UnlockPref(aPrefName); } \
  NS_IMETHOD DeleteBranch(const char *aStartingAt) { return _to ## DeleteBranch(aStartingAt); } \
  NS_IMETHOD GetChildList(const char *aStartingAt, PRUint32 *aCount, char ***aChildArray) { return _to ## GetChildList(aStartingAt, aCount, aChildArray); } \
  NS_IMETHOD ResetBranch(const char *aStartingAt) { return _to ## ResetBranch(aStartingAt); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIPREFBRANCH(_to) \
  NS_IMETHOD GetRoot(char * *aRoot) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##->GetRoot(aRoot); } \
  NS_IMETHOD GetPrefType(const char *aPrefName, PRInt32 *_retval) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> GetPrefType(aPrefName, _retval); } \
  NS_IMETHOD GetBoolPref(const char *aPrefName, PRBool *_retval) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> GetBoolPref(aPrefName, _retval); } \
  NS_IMETHOD SetBoolPref(const char *aPrefName, PRInt32 aValue) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> SetBoolPref(aPrefName, aValue); } \
  NS_IMETHOD GetCharPref(const char *aPrefName, char **_retval) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> GetCharPref(aPrefName, _retval); } \
  NS_IMETHOD SetCharPref(const char *aPrefName, const char *aValue) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> SetCharPref(aPrefName, aValue); } \
  NS_IMETHOD GetIntPref(const char *aPrefName, PRInt32 *_retval) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> GetIntPref(aPrefName, _retval); } \
  NS_IMETHOD SetIntPref(const char *aPrefName, PRInt32 aValue) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> SetIntPref(aPrefName, aValue); } \
  NS_IMETHOD GetComplexValue(const char *aPrefName, const nsIID & aType, void * *aValue) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> GetComplexValue(aPrefName, aType, aValue); } \
  NS_IMETHOD SetComplexValue(const char *aPrefName, const nsIID & aType, nsISupports *aValue) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> SetComplexValue(aPrefName, aType, aValue); } \
  NS_IMETHOD ClearUserPref(const char *aPrefName) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> ClearUserPref(aPrefName); } \
  NS_IMETHOD LockPref(const char *aPrefName) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> LockPref(aPrefName); } \
  NS_IMETHOD PrefIsLocked(const char *aPrefName, PRBool *_retval) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> PrefIsLocked(aPrefName, _retval); } \
  NS_IMETHOD UnlockPref(const char *aPrefName) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> UnlockPref(aPrefName); } \
  NS_IMETHOD DeleteBranch(const char *aStartingAt) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> DeleteBranch(aStartingAt); } \
  NS_IMETHOD GetChildList(const char *aStartingAt, PRUint32 *aCount, char ***aChildArray) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> GetChildList(aStartingAt, aCount, aChildArray); } \
  NS_IMETHOD ResetBranch(const char *aStartingAt) { return !_to ## ? NS_ERROR_NULL_POINTER : _to ##-> ResetBranch(aStartingAt); } 

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

/* Header file */
class nsPrefBranch : public nsIPrefBranch
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIPREFBRANCH

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsPrefBranch, nsIPrefBranch)

nsPrefBranch::nsPrefBranch()
{
  NS_INIT_ISUPPORTS();
  /* member initializers and constructor code */
}

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

/* readonly attribute string root; */
NS_IMETHODIMP nsPrefBranch::GetRoot(char * *aRoot)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* long getPrefType (in string aPrefName); */
NS_IMETHODIMP nsPrefBranch::GetPrefType(const char *aPrefName, PRInt32 *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean getBoolPref (in string aPrefName); */
NS_IMETHODIMP nsPrefBranch::GetBoolPref(const char *aPrefName, PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setBoolPref (in string aPrefName, in long aValue); */
NS_IMETHODIMP nsPrefBranch::SetBoolPref(const char *aPrefName, PRInt32 aValue)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* string getCharPref (in string aPrefName); */
NS_IMETHODIMP nsPrefBranch::GetCharPref(const char *aPrefName, char **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setCharPref (in string aPrefName, in string aValue); */
NS_IMETHODIMP nsPrefBranch::SetCharPref(const char *aPrefName, const char *aValue)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* long getIntPref (in string aPrefName); */
NS_IMETHODIMP nsPrefBranch::GetIntPref(const char *aPrefName, PRInt32 *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setIntPref (in string aPrefName, in long aValue); */
NS_IMETHODIMP nsPrefBranch::SetIntPref(const char *aPrefName, PRInt32 aValue)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getComplexValue (in string aPrefName, in nsIIDRef aType, [iid_is (aType), retval] out nsQIResult aValue); */
NS_IMETHODIMP nsPrefBranch::GetComplexValue(const char *aPrefName, const nsIID & aType, void * *aValue)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setComplexValue (in string aPrefName, in nsIIDRef aType, in nsISupports aValue); */
NS_IMETHODIMP nsPrefBranch::SetComplexValue(const char *aPrefName, const nsIID & aType, nsISupports *aValue)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void clearUserPref (in string aPrefName); */
NS_IMETHODIMP nsPrefBranch::ClearUserPref(const char *aPrefName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void lockPref (in string aPrefName); */
NS_IMETHODIMP nsPrefBranch::LockPref(const char *aPrefName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean prefIsLocked (in string aPrefName); */
NS_IMETHODIMP nsPrefBranch::PrefIsLocked(const char *aPrefName, PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void unlockPref (in string aPrefName); */
NS_IMETHODIMP nsPrefBranch::UnlockPref(const char *aPrefName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void deleteBranch (in string aStartingAt); */
NS_IMETHODIMP nsPrefBranch::DeleteBranch(const char *aStartingAt)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getChildList (in string aStartingAt, out unsigned long aCount, [array, size_is (aCount), retval] out string aChildArray); */
NS_IMETHODIMP nsPrefBranch::GetChildList(const char *aStartingAt, PRUint32 *aCount, char ***aChildArray)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void resetBranch (in string aStartingAt); */
NS_IMETHODIMP nsPrefBranch::ResetBranch(const char *aStartingAt)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

#define NS_PREFBRANCH_CONTRACTID "@mozilla.org/preferencesbranch;1"
#define NS_PREFBRANCH_CLASSNAME "Preferences Branch"

#endif /* __gen_nsIPrefBranch_h__ */
