/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM /tmp/comm-release/mailnews/addrbook/public/nsIAbView.idl
 */

#ifndef __gen_nsIAbView_h__
#define __gen_nsIAbView_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
class nsIAbCard; /* forward declaration */

class nsIAbDirectory; /* forward declaration */

class nsIArray; /* forward declaration */


/* starting interface:    nsIAbViewListener */
#define NS_IABVIEWLISTENER_IID_STR "79ad5d6e-1dd2-11b2-addd-f547dab50d75"

#define NS_IABVIEWLISTENER_IID \
  {0x79ad5d6e, 0x1dd2, 0x11b2, \
    { 0xad, 0xdd, 0xf5, 0x47, 0xda, 0xb5, 0x0d, 0x75 }}

class NS_NO_VTABLE nsIAbViewListener : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IABVIEWLISTENER_IID)

  /* void onSelectionChanged (); */
  NS_IMETHOD OnSelectionChanged(void) = 0;

  /* void onCountChanged (in long total); */
  NS_IMETHOD OnCountChanged(int32_t total) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIAbViewListener, NS_IABVIEWLISTENER_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIABVIEWLISTENER \
  NS_IMETHOD OnSelectionChanged(void); \
  NS_IMETHOD OnCountChanged(int32_t total); 

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

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

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

/* Header file */
class nsAbViewListener : public nsIAbViewListener
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIABVIEWLISTENER

  nsAbViewListener();

private:
  ~nsAbViewListener();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsAbViewListener, nsIAbViewListener)

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

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

/* void onSelectionChanged (); */
NS_IMETHODIMP nsAbViewListener::OnSelectionChanged()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onCountChanged (in long total); */
NS_IMETHODIMP nsAbViewListener::OnCountChanged(int32_t total)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    nsIAbView */
#define NS_IABVIEW_IID_STR "c7c454bd-1901-4a4b-aac7-a3f9918b3616"

#define NS_IABVIEW_IID \
  {0xc7c454bd, 0x1901, 0x4a4b, \
    { 0xaa, 0xc7, 0xa3, 0xf9, 0x91, 0x8b, 0x36, 0x16 }}

class NS_NO_VTABLE nsIAbView : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IABVIEW_IID)

  /* AString setView (in nsIAbDirectory aAddressBook, in nsIAbViewListener aAbViewListener, in AString aSortColumn, in AString aSortDirection); */
  NS_IMETHOD SetView(nsIAbDirectory *aAddressBook, nsIAbViewListener *aAbViewListener, const nsAString & aSortColumn, const nsAString & aSortDirection, nsAString & _retval) = 0;

  /* void clearView (); */
  NS_IMETHOD ClearView(void) = 0;

  /* void sortBy (in wstring aSortColumn, in wstring aSortDirection); */
  NS_IMETHOD SortBy(const PRUnichar * aSortColumn, const PRUnichar * aSortDirection) = 0;

  /* readonly attribute AString sortColumn; */
  NS_IMETHOD GetSortColumn(nsAString & aSortColumn) = 0;

  /* readonly attribute AString sortDirection; */
  NS_IMETHOD GetSortDirection(nsAString & aSortDirection) = 0;

  /* readonly attribute nsIAbDirectory directory; */
  NS_IMETHOD GetDirectory(nsIAbDirectory * *aDirectory) = 0;

  /* nsIAbCard getCardFromRow (in long aRow); */
  NS_IMETHOD GetCardFromRow(int32_t aRow, nsIAbCard * *_retval) = 0;

  /* void selectAll (); */
  NS_IMETHOD SelectAll(void) = 0;

  /* void deleteSelectedCards (); */
  NS_IMETHOD DeleteSelectedCards(void) = 0;

  /* void swapFirstNameLastName (); */
  NS_IMETHOD SwapFirstNameLastName(void) = 0;

  /* readonly attribute nsIArray selectedAddresses; */
  NS_IMETHOD GetSelectedAddresses(nsIArray * *aSelectedAddresses) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIAbView, NS_IABVIEW_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIABVIEW \
  NS_IMETHOD SetView(nsIAbDirectory *aAddressBook, nsIAbViewListener *aAbViewListener, const nsAString & aSortColumn, const nsAString & aSortDirection, nsAString & _retval); \
  NS_IMETHOD ClearView(void); \
  NS_IMETHOD SortBy(const PRUnichar * aSortColumn, const PRUnichar * aSortDirection); \
  NS_IMETHOD GetSortColumn(nsAString & aSortColumn); \
  NS_IMETHOD GetSortDirection(nsAString & aSortDirection); \
  NS_IMETHOD GetDirectory(nsIAbDirectory * *aDirectory); \
  NS_IMETHOD GetCardFromRow(int32_t aRow, nsIAbCard * *_retval); \
  NS_IMETHOD SelectAll(void); \
  NS_IMETHOD DeleteSelectedCards(void); \
  NS_IMETHOD SwapFirstNameLastName(void); \
  NS_IMETHOD GetSelectedAddresses(nsIArray * *aSelectedAddresses); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIABVIEW(_to) \
  NS_IMETHOD SetView(nsIAbDirectory *aAddressBook, nsIAbViewListener *aAbViewListener, const nsAString & aSortColumn, const nsAString & aSortDirection, nsAString & _retval) { return _to SetView(aAddressBook, aAbViewListener, aSortColumn, aSortDirection, _retval); } \
  NS_IMETHOD ClearView(void) { return _to ClearView(); } \
  NS_IMETHOD SortBy(const PRUnichar * aSortColumn, const PRUnichar * aSortDirection) { return _to SortBy(aSortColumn, aSortDirection); } \
  NS_IMETHOD GetSortColumn(nsAString & aSortColumn) { return _to GetSortColumn(aSortColumn); } \
  NS_IMETHOD GetSortDirection(nsAString & aSortDirection) { return _to GetSortDirection(aSortDirection); } \
  NS_IMETHOD GetDirectory(nsIAbDirectory * *aDirectory) { return _to GetDirectory(aDirectory); } \
  NS_IMETHOD GetCardFromRow(int32_t aRow, nsIAbCard * *_retval) { return _to GetCardFromRow(aRow, _retval); } \
  NS_IMETHOD SelectAll(void) { return _to SelectAll(); } \
  NS_IMETHOD DeleteSelectedCards(void) { return _to DeleteSelectedCards(); } \
  NS_IMETHOD SwapFirstNameLastName(void) { return _to SwapFirstNameLastName(); } \
  NS_IMETHOD GetSelectedAddresses(nsIArray * *aSelectedAddresses) { return _to GetSelectedAddresses(aSelectedAddresses); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIABVIEW(_to) \
  NS_IMETHOD SetView(nsIAbDirectory *aAddressBook, nsIAbViewListener *aAbViewListener, const nsAString & aSortColumn, const nsAString & aSortDirection, nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetView(aAddressBook, aAbViewListener, aSortColumn, aSortDirection, _retval); } \
  NS_IMETHOD ClearView(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ClearView(); } \
  NS_IMETHOD SortBy(const PRUnichar * aSortColumn, const PRUnichar * aSortDirection) { return !_to ? NS_ERROR_NULL_POINTER : _to->SortBy(aSortColumn, aSortDirection); } \
  NS_IMETHOD GetSortColumn(nsAString & aSortColumn) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSortColumn(aSortColumn); } \
  NS_IMETHOD GetSortDirection(nsAString & aSortDirection) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSortDirection(aSortDirection); } \
  NS_IMETHOD GetDirectory(nsIAbDirectory * *aDirectory) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDirectory(aDirectory); } \
  NS_IMETHOD GetCardFromRow(int32_t aRow, nsIAbCard * *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCardFromRow(aRow, _retval); } \
  NS_IMETHOD SelectAll(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->SelectAll(); } \
  NS_IMETHOD DeleteSelectedCards(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->DeleteSelectedCards(); } \
  NS_IMETHOD SwapFirstNameLastName(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->SwapFirstNameLastName(); } \
  NS_IMETHOD GetSelectedAddresses(nsIArray * *aSelectedAddresses) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSelectedAddresses(aSelectedAddresses); } 

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

/* Header file */
class nsAbView : public nsIAbView
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIABVIEW

  nsAbView();

private:
  ~nsAbView();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsAbView, nsIAbView)

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

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

/* AString setView (in nsIAbDirectory aAddressBook, in nsIAbViewListener aAbViewListener, in AString aSortColumn, in AString aSortDirection); */
NS_IMETHODIMP nsAbView::SetView(nsIAbDirectory *aAddressBook, nsIAbViewListener *aAbViewListener, const nsAString & aSortColumn, const nsAString & aSortDirection, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void clearView (); */
NS_IMETHODIMP nsAbView::ClearView()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void sortBy (in wstring aSortColumn, in wstring aSortDirection); */
NS_IMETHODIMP nsAbView::SortBy(const PRUnichar * aSortColumn, const PRUnichar * aSortDirection)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute AString sortColumn; */
NS_IMETHODIMP nsAbView::GetSortColumn(nsAString & aSortColumn)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute AString sortDirection; */
NS_IMETHODIMP nsAbView::GetSortDirection(nsAString & aSortDirection)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIAbDirectory directory; */
NS_IMETHODIMP nsAbView::GetDirectory(nsIAbDirectory * *aDirectory)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAbCard getCardFromRow (in long aRow); */
NS_IMETHODIMP nsAbView::GetCardFromRow(int32_t aRow, nsIAbCard * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void selectAll (); */
NS_IMETHODIMP nsAbView::SelectAll()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void deleteSelectedCards (); */
NS_IMETHODIMP nsAbView::DeleteSelectedCards()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void swapFirstNameLastName (); */
NS_IMETHODIMP nsAbView::SwapFirstNameLastName()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIArray selectedAddresses; */
NS_IMETHODIMP nsAbView::GetSelectedAddresses(nsIArray * *aSelectedAddresses)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIAbView_h__ */
