/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM /tmp/comm-release/mailnews/base/search/public/nsIMsgTraitService.idl
 */

#ifndef __gen_nsIMsgTraitService_h__
#define __gen_nsIMsgTraitService_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:    nsIMsgTraitService */
#define NS_IMSGTRAITSERVICE_IID_STR "2cb15fb0-a912-40d3-8882-f2765c75655f"

#define NS_IMSGTRAITSERVICE_IID \
  {0x2cb15fb0, 0xa912, 0x40d3, \
    { 0x88, 0x82, 0xf2, 0x76, 0x5c, 0x75, 0x65, 0x5f }}

class NS_NO_VTABLE NS_SCRIPTABLE nsIMsgTraitService : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMSGTRAITSERVICE_IID)

  /* readonly attribute long lastIndex; */
  NS_SCRIPTABLE NS_IMETHOD GetLastIndex(PRInt32 *aLastIndex) = 0;

  /* unsigned long registerTrait (in ACString id); */
  NS_SCRIPTABLE NS_IMETHOD RegisterTrait(const nsACString & id, PRUint32 *_retval NS_OUTPARAM) = 0;

  /* void unRegisterTrait (in ACString id); */
  NS_SCRIPTABLE NS_IMETHOD UnRegisterTrait(const nsACString & id) = 0;

  /* boolean isRegistered (in ACString id); */
  NS_SCRIPTABLE NS_IMETHOD IsRegistered(const nsACString & id, bool *_retval NS_OUTPARAM) = 0;

  /* void setName (in ACString id, in ACString name); */
  NS_SCRIPTABLE NS_IMETHOD SetName(const nsACString & id, const nsACString & name) = 0;

  /* ACString getName (in ACString id); */
  NS_SCRIPTABLE NS_IMETHOD GetName(const nsACString & id, nsACString & _retval NS_OUTPARAM) = 0;

  /* unsigned long getIndex (in ACString id); */
  NS_SCRIPTABLE NS_IMETHOD GetIndex(const nsACString & id, PRUint32 *_retval NS_OUTPARAM) = 0;

  /* ACString getId (in unsigned long index); */
  NS_SCRIPTABLE NS_IMETHOD GetId(PRUint32 index, nsACString & _retval NS_OUTPARAM) = 0;

  /* void setEnabled (in ACString id, in boolean enabled); */
  NS_SCRIPTABLE NS_IMETHOD SetEnabled(const nsACString & id, bool enabled) = 0;

  /* boolean getEnabled (in ACString id); */
  NS_SCRIPTABLE NS_IMETHOD GetEnabled(const nsACString & id, bool *_retval NS_OUTPARAM) = 0;

  /* void setAntiId (in ACString id, in ACString antiId); */
  NS_SCRIPTABLE NS_IMETHOD SetAntiId(const nsACString & id, const nsACString & antiId) = 0;

  /* ACString getAntiId (in ACString id); */
  NS_SCRIPTABLE NS_IMETHOD GetAntiId(const nsACString & id, nsACString & _retval NS_OUTPARAM) = 0;

  /* void getEnabledIndices (out unsigned long count, [array, size_is (count)] out unsigned long proIndices, [array, size_is (count)] out unsigned long antiIndices); */
  NS_SCRIPTABLE NS_IMETHOD GetEnabledIndices(PRUint32 *count NS_OUTPARAM, PRUint32 **proIndices NS_OUTPARAM, PRUint32 **antiIndices NS_OUTPARAM) = 0;

  /* void addAlias (in unsigned long aTraitIndex, in unsigned long aTraitAlias); */
  NS_SCRIPTABLE NS_IMETHOD AddAlias(PRUint32 aTraitIndex, PRUint32 aTraitAlias) = 0;

  /* void removeAlias (in unsigned long aTraitIndex, in unsigned long aTraitAlias); */
  NS_SCRIPTABLE NS_IMETHOD RemoveAlias(PRUint32 aTraitIndex, PRUint32 aTraitAlias) = 0;

  /* void getAliases (in unsigned long aTraitIndex, out unsigned long aLength, [array, size_is (aLength), retval] out unsigned long aAliases); */
  NS_SCRIPTABLE NS_IMETHOD GetAliases(PRUint32 aTraitIndex, PRUint32 *aLength NS_OUTPARAM, PRUint32 **aAliases NS_OUTPARAM) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMsgTraitService, NS_IMSGTRAITSERVICE_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGTRAITSERVICE \
  NS_SCRIPTABLE NS_IMETHOD GetLastIndex(PRInt32 *aLastIndex); \
  NS_SCRIPTABLE NS_IMETHOD RegisterTrait(const nsACString & id, PRUint32 *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD UnRegisterTrait(const nsACString & id); \
  NS_SCRIPTABLE NS_IMETHOD IsRegistered(const nsACString & id, bool *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD SetName(const nsACString & id, const nsACString & name); \
  NS_SCRIPTABLE NS_IMETHOD GetName(const nsACString & id, nsACString & _retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetIndex(const nsACString & id, PRUint32 *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetId(PRUint32 index, nsACString & _retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD SetEnabled(const nsACString & id, bool enabled); \
  NS_SCRIPTABLE NS_IMETHOD GetEnabled(const nsACString & id, bool *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD SetAntiId(const nsACString & id, const nsACString & antiId); \
  NS_SCRIPTABLE NS_IMETHOD GetAntiId(const nsACString & id, nsACString & _retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetEnabledIndices(PRUint32 *count NS_OUTPARAM, PRUint32 **proIndices NS_OUTPARAM, PRUint32 **antiIndices NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD AddAlias(PRUint32 aTraitIndex, PRUint32 aTraitAlias); \
  NS_SCRIPTABLE NS_IMETHOD RemoveAlias(PRUint32 aTraitIndex, PRUint32 aTraitAlias); \
  NS_SCRIPTABLE NS_IMETHOD GetAliases(PRUint32 aTraitIndex, PRUint32 *aLength NS_OUTPARAM, PRUint32 **aAliases NS_OUTPARAM); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGTRAITSERVICE(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetLastIndex(PRInt32 *aLastIndex) { return _to GetLastIndex(aLastIndex); } \
  NS_SCRIPTABLE NS_IMETHOD RegisterTrait(const nsACString & id, PRUint32 *_retval NS_OUTPARAM) { return _to RegisterTrait(id, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD UnRegisterTrait(const nsACString & id) { return _to UnRegisterTrait(id); } \
  NS_SCRIPTABLE NS_IMETHOD IsRegistered(const nsACString & id, bool *_retval NS_OUTPARAM) { return _to IsRegistered(id, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetName(const nsACString & id, const nsACString & name) { return _to SetName(id, name); } \
  NS_SCRIPTABLE NS_IMETHOD GetName(const nsACString & id, nsACString & _retval NS_OUTPARAM) { return _to GetName(id, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetIndex(const nsACString & id, PRUint32 *_retval NS_OUTPARAM) { return _to GetIndex(id, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetId(PRUint32 index, nsACString & _retval NS_OUTPARAM) { return _to GetId(index, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetEnabled(const nsACString & id, bool enabled) { return _to SetEnabled(id, enabled); } \
  NS_SCRIPTABLE NS_IMETHOD GetEnabled(const nsACString & id, bool *_retval NS_OUTPARAM) { return _to GetEnabled(id, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetAntiId(const nsACString & id, const nsACString & antiId) { return _to SetAntiId(id, antiId); } \
  NS_SCRIPTABLE NS_IMETHOD GetAntiId(const nsACString & id, nsACString & _retval NS_OUTPARAM) { return _to GetAntiId(id, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetEnabledIndices(PRUint32 *count NS_OUTPARAM, PRUint32 **proIndices NS_OUTPARAM, PRUint32 **antiIndices NS_OUTPARAM) { return _to GetEnabledIndices(count, proIndices, antiIndices); } \
  NS_SCRIPTABLE NS_IMETHOD AddAlias(PRUint32 aTraitIndex, PRUint32 aTraitAlias) { return _to AddAlias(aTraitIndex, aTraitAlias); } \
  NS_SCRIPTABLE NS_IMETHOD RemoveAlias(PRUint32 aTraitIndex, PRUint32 aTraitAlias) { return _to RemoveAlias(aTraitIndex, aTraitAlias); } \
  NS_SCRIPTABLE NS_IMETHOD GetAliases(PRUint32 aTraitIndex, PRUint32 *aLength NS_OUTPARAM, PRUint32 **aAliases NS_OUTPARAM) { return _to GetAliases(aTraitIndex, aLength, aAliases); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGTRAITSERVICE(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetLastIndex(PRInt32 *aLastIndex) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLastIndex(aLastIndex); } \
  NS_SCRIPTABLE NS_IMETHOD RegisterTrait(const nsACString & id, PRUint32 *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->RegisterTrait(id, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD UnRegisterTrait(const nsACString & id) { return !_to ? NS_ERROR_NULL_POINTER : _to->UnRegisterTrait(id); } \
  NS_SCRIPTABLE NS_IMETHOD IsRegistered(const nsACString & id, bool *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsRegistered(id, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetName(const nsACString & id, const nsACString & name) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetName(id, name); } \
  NS_SCRIPTABLE NS_IMETHOD GetName(const nsACString & id, nsACString & _retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(id, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetIndex(const nsACString & id, PRUint32 *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIndex(id, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetId(PRUint32 index, nsACString & _retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetId(index, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetEnabled(const nsACString & id, bool enabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEnabled(id, enabled); } \
  NS_SCRIPTABLE NS_IMETHOD GetEnabled(const nsACString & id, bool *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEnabled(id, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetAntiId(const nsACString & id, const nsACString & antiId) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAntiId(id, antiId); } \
  NS_SCRIPTABLE NS_IMETHOD GetAntiId(const nsACString & id, nsACString & _retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAntiId(id, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetEnabledIndices(PRUint32 *count NS_OUTPARAM, PRUint32 **proIndices NS_OUTPARAM, PRUint32 **antiIndices NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEnabledIndices(count, proIndices, antiIndices); } \
  NS_SCRIPTABLE NS_IMETHOD AddAlias(PRUint32 aTraitIndex, PRUint32 aTraitAlias) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddAlias(aTraitIndex, aTraitAlias); } \
  NS_SCRIPTABLE NS_IMETHOD RemoveAlias(PRUint32 aTraitIndex, PRUint32 aTraitAlias) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveAlias(aTraitIndex, aTraitAlias); } \
  NS_SCRIPTABLE NS_IMETHOD GetAliases(PRUint32 aTraitIndex, PRUint32 *aLength NS_OUTPARAM, PRUint32 **aAliases NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAliases(aTraitIndex, aLength, aAliases); } 

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

/* Header file */
class nsMsgTraitService : public nsIMsgTraitService
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGTRAITSERVICE

  nsMsgTraitService();

private:
  ~nsMsgTraitService();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMsgTraitService, nsIMsgTraitService)

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

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

/* readonly attribute long lastIndex; */
NS_IMETHODIMP nsMsgTraitService::GetLastIndex(PRInt32 *aLastIndex)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* unsigned long registerTrait (in ACString id); */
NS_IMETHODIMP nsMsgTraitService::RegisterTrait(const nsACString & id, PRUint32 *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void unRegisterTrait (in ACString id); */
NS_IMETHODIMP nsMsgTraitService::UnRegisterTrait(const nsACString & id)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean isRegistered (in ACString id); */
NS_IMETHODIMP nsMsgTraitService::IsRegistered(const nsACString & id, bool *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setName (in ACString id, in ACString name); */
NS_IMETHODIMP nsMsgTraitService::SetName(const nsACString & id, const nsACString & name)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* ACString getName (in ACString id); */
NS_IMETHODIMP nsMsgTraitService::GetName(const nsACString & id, nsACString & _retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* unsigned long getIndex (in ACString id); */
NS_IMETHODIMP nsMsgTraitService::GetIndex(const nsACString & id, PRUint32 *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* ACString getId (in unsigned long index); */
NS_IMETHODIMP nsMsgTraitService::GetId(PRUint32 index, nsACString & _retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setEnabled (in ACString id, in boolean enabled); */
NS_IMETHODIMP nsMsgTraitService::SetEnabled(const nsACString & id, bool enabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean getEnabled (in ACString id); */
NS_IMETHODIMP nsMsgTraitService::GetEnabled(const nsACString & id, bool *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setAntiId (in ACString id, in ACString antiId); */
NS_IMETHODIMP nsMsgTraitService::SetAntiId(const nsACString & id, const nsACString & antiId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* ACString getAntiId (in ACString id); */
NS_IMETHODIMP nsMsgTraitService::GetAntiId(const nsACString & id, nsACString & _retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getEnabledIndices (out unsigned long count, [array, size_is (count)] out unsigned long proIndices, [array, size_is (count)] out unsigned long antiIndices); */
NS_IMETHODIMP nsMsgTraitService::GetEnabledIndices(PRUint32 *count NS_OUTPARAM, PRUint32 **proIndices NS_OUTPARAM, PRUint32 **antiIndices NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addAlias (in unsigned long aTraitIndex, in unsigned long aTraitAlias); */
NS_IMETHODIMP nsMsgTraitService::AddAlias(PRUint32 aTraitIndex, PRUint32 aTraitAlias)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeAlias (in unsigned long aTraitIndex, in unsigned long aTraitAlias); */
NS_IMETHODIMP nsMsgTraitService::RemoveAlias(PRUint32 aTraitIndex, PRUint32 aTraitAlias)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getAliases (in unsigned long aTraitIndex, out unsigned long aLength, [array, size_is (aLength), retval] out unsigned long aAliases); */
NS_IMETHODIMP nsMsgTraitService::GetAliases(PRUint32 aTraitIndex, PRUint32 *aLength NS_OUTPARAM, PRUint32 **aAliases NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIMsgTraitService_h__ */
