/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM ../../../dist/idl/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) override; \
  NS_IMETHOD OnCountChanged(int32_t total) override; 

/* Use this macro when declaring the members of this interface when the
   class doesn't implement the interface. This is useful for forwarding. */
#define NS_DECL_NON_VIRTUAL_NSIABVIEWLISTENER \
  NS_METHOD OnSelectionChanged(void); \
  NS_METHOD 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) override { return _to OnSelectionChanged(); } \
  NS_IMETHOD OnCountChanged(int32_t total) override { 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) override { return !_to ? NS_ERROR_NULL_POINTER : _to->OnSelectionChanged(); } \
  NS_IMETHOD OnCountChanged(int32_t total) override { 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_ISUPPORTS(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 "45e2fa9f-0b59-4090-a2fa-fb7042cf64a2"

#define NS_IABVIEW_IID \
  {0x45e2fa9f, 0x0b59, 0x4090, \
    { 0xa2, 0xfa, 0xfb, 0x70, 0x42, 0xcf, 0x64, 0xa2 }}

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, [optional] in boolean aResort); */
  NS_IMETHOD SortBy(const char16_t * aSortColumn, const char16_t * aSortDirection, bool aResort) = 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) override; \
  NS_IMETHOD ClearView(void) override; \
  NS_IMETHOD SortBy(const char16_t * aSortColumn, const char16_t * aSortDirection, bool aResort) override; \
  NS_IMETHOD GetSortColumn(nsAString & aSortColumn) override; \
  NS_IMETHOD GetSortDirection(nsAString & aSortDirection) override; \
  NS_IMETHOD GetDirectory(nsIAbDirectory * *aDirectory) override; \
  NS_IMETHOD GetCardFromRow(int32_t aRow, nsIAbCard * *_retval) override; \
  NS_IMETHOD SelectAll(void) override; \
  NS_IMETHOD DeleteSelectedCards(void) override; \
  NS_IMETHOD SwapFirstNameLastName(void) override; \
  NS_IMETHOD GetSelectedAddresses(nsIArray * *aSelectedAddresses) override; 

/* Use this macro when declaring the members of this interface when the
   class doesn't implement the interface. This is useful for forwarding. */
#define NS_DECL_NON_VIRTUAL_NSIABVIEW \
  NS_METHOD SetView(nsIAbDirectory *aAddressBook, nsIAbViewListener *aAbViewListener, const nsAString & aSortColumn, const nsAString & aSortDirection, nsAString & _retval); \
  NS_METHOD ClearView(void); \
  NS_METHOD SortBy(const char16_t * aSortColumn, const char16_t * aSortDirection, bool aResort); \
  NS_METHOD GetSortColumn(nsAString & aSortColumn); \
  NS_METHOD GetSortDirection(nsAString & aSortDirection); \
  NS_METHOD GetDirectory(nsIAbDirectory * *aDirectory); \
  NS_METHOD GetCardFromRow(int32_t aRow, nsIAbCard * *_retval); \
  NS_METHOD SelectAll(void); \
  NS_METHOD DeleteSelectedCards(void); \
  NS_METHOD SwapFirstNameLastName(void); \
  NS_METHOD 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) override { return _to SetView(aAddressBook, aAbViewListener, aSortColumn, aSortDirection, _retval); } \
  NS_IMETHOD ClearView(void) override { return _to ClearView(); } \
  NS_IMETHOD SortBy(const char16_t * aSortColumn, const char16_t * aSortDirection, bool aResort) override { return _to SortBy(aSortColumn, aSortDirection, aResort); } \
  NS_IMETHOD GetSortColumn(nsAString & aSortColumn) override { return _to GetSortColumn(aSortColumn); } \
  NS_IMETHOD GetSortDirection(nsAString & aSortDirection) override { return _to GetSortDirection(aSortDirection); } \
  NS_IMETHOD GetDirectory(nsIAbDirectory * *aDirectory) override { return _to GetDirectory(aDirectory); } \
  NS_IMETHOD GetCardFromRow(int32_t aRow, nsIAbCard * *_retval) override { return _to GetCardFromRow(aRow, _retval); } \
  NS_IMETHOD SelectAll(void) override { return _to SelectAll(); } \
  NS_IMETHOD DeleteSelectedCards(void) override { return _to DeleteSelectedCards(); } \
  NS_IMETHOD SwapFirstNameLastName(void) override { return _to SwapFirstNameLastName(); } \
  NS_IMETHOD GetSelectedAddresses(nsIArray * *aSelectedAddresses) override { 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) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetView(aAddressBook, aAbViewListener, aSortColumn, aSortDirection, _retval); } \
  NS_IMETHOD ClearView(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ClearView(); } \
  NS_IMETHOD SortBy(const char16_t * aSortColumn, const char16_t * aSortDirection, bool aResort) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SortBy(aSortColumn, aSortDirection, aResort); } \
  NS_IMETHOD GetSortColumn(nsAString & aSortColumn) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSortColumn(aSortColumn); } \
  NS_IMETHOD GetSortDirection(nsAString & aSortDirection) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSortDirection(aSortDirection); } \
  NS_IMETHOD GetDirectory(nsIAbDirectory * *aDirectory) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDirectory(aDirectory); } \
  NS_IMETHOD GetCardFromRow(int32_t aRow, nsIAbCard * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCardFromRow(aRow, _retval); } \
  NS_IMETHOD SelectAll(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SelectAll(); } \
  NS_IMETHOD DeleteSelectedCards(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->DeleteSelectedCards(); } \
  NS_IMETHOD SwapFirstNameLastName(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SwapFirstNameLastName(); } \
  NS_IMETHOD GetSelectedAddresses(nsIArray * *aSelectedAddresses) override { 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_ISUPPORTS(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, [optional] in boolean aResort); */
NS_IMETHODIMP nsAbView::SortBy(const char16_t * aSortColumn, const char16_t * aSortDirection, bool aResort)
{
    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__ */
