/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM $SRCDIR/accessible/interfaces/nsIAccessibleTable.idl
 */

#ifndef __gen_nsIAccessibleTable_h__
#define __gen_nsIAccessibleTable_h__


#include "nsISupports.h"

#include "nsTArray.h"

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
class nsIAccessible; /* forward declaration */

class nsIArray; /* forward declaration */


/* starting interface:    nsIAccessibleTable */
#define NS_IACCESSIBLETABLE_IID_STR "cb0bf7b9-117e-40e2-9e46-189c3d43ce4a"

#define NS_IACCESSIBLETABLE_IID \
  {0xcb0bf7b9, 0x117e, 0x40e2, \
    { 0x9e, 0x46, 0x18, 0x9c, 0x3d, 0x43, 0xce, 0x4a }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsIAccessibleTable) nsIAccessibleTable : public nsISupports {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_IACCESSIBLETABLE_IID)

  /* Used by ToJSValue to check which scriptable interface is implemented. */
  using ScriptableInterfaceType = nsIAccessibleTable;

  /* readonly attribute nsIAccessible caption; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleTable_caption)
  NS_IMETHOD GetCaption(nsIAccessible **aCaption) = 0;

  /* readonly attribute AString summary; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleTable_summary)
  NS_IMETHOD GetSummary(nsAString& aSummary) = 0;

  /* readonly attribute long columnCount; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleTable_columnCount)
  NS_IMETHOD GetColumnCount(int32_t *aColumnCount) = 0;

  /* readonly attribute long rowCount; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleTable_rowCount)
  NS_IMETHOD GetRowCount(int32_t *aRowCount) = 0;

  /* nsIAccessible getCellAt (in long rowIndex, in long columnIndex); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_getCellAt)
  NS_IMETHOD GetCellAt(int32_t rowIndex, int32_t columnIndex, nsIAccessible **_retval) = 0;

  /* long getCellIndexAt (in long rowIndex, in long columnIndex); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_getCellIndexAt)
  NS_IMETHOD GetCellIndexAt(int32_t rowIndex, int32_t columnIndex, int32_t *_retval) = 0;

  /* long getColumnIndexAt (in long cellIndex); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_getColumnIndexAt)
  NS_IMETHOD GetColumnIndexAt(int32_t cellIndex, int32_t *_retval) = 0;

  /* long getRowIndexAt (in long cellIndex); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_getRowIndexAt)
  NS_IMETHOD GetRowIndexAt(int32_t cellIndex, int32_t *_retval) = 0;

  /* void getRowAndColumnIndicesAt (in long cellIndex, out long rowIndex, out long columnIndex); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_getRowAndColumnIndicesAt)
  NS_IMETHOD GetRowAndColumnIndicesAt(int32_t cellIndex, int32_t *rowIndex, int32_t *columnIndex) = 0;

  /* long getColumnExtentAt (in long row, in long column); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_getColumnExtentAt)
  NS_IMETHOD GetColumnExtentAt(int32_t row, int32_t column, int32_t *_retval) = 0;

  /* long getRowExtentAt (in long row, in long column); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_getRowExtentAt)
  NS_IMETHOD GetRowExtentAt(int32_t row, int32_t column, int32_t *_retval) = 0;

  /* AString getColumnDescription (in long columnIndex); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_getColumnDescription)
  NS_IMETHOD GetColumnDescription(int32_t columnIndex, nsAString& _retval) = 0;

  /* AString getRowDescription (in long rowIndex); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_getRowDescription)
  NS_IMETHOD GetRowDescription(int32_t rowIndex, nsAString& _retval) = 0;

  /* boolean isColumnSelected (in long columnIndex); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_isColumnSelected)
  NS_IMETHOD IsColumnSelected(int32_t columnIndex, bool *_retval) = 0;

  /* boolean isRowSelected (in long rowIndex); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_isRowSelected)
  NS_IMETHOD IsRowSelected(int32_t rowIndex, bool *_retval) = 0;

  /* boolean isCellSelected (in long rowIndex, in long columnIndex); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_isCellSelected)
  NS_IMETHOD IsCellSelected(int32_t rowIndex, int32_t columnIndex, bool *_retval) = 0;

  /* readonly attribute unsigned long selectedCellCount; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleTable_selectedCellCount)
  NS_IMETHOD GetSelectedCellCount(uint32_t *aSelectedCellCount) = 0;

  /* readonly attribute unsigned long selectedColumnCount; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleTable_selectedColumnCount)
  NS_IMETHOD GetSelectedColumnCount(uint32_t *aSelectedColumnCount) = 0;

  /* readonly attribute unsigned long selectedRowCount; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleTable_selectedRowCount)
  NS_IMETHOD GetSelectedRowCount(uint32_t *aSelectedRowCount) = 0;

  /* readonly attribute nsIArray selectedCells; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleTable_selectedCells)
  NS_IMETHOD GetSelectedCells(nsIArray **aSelectedCells) = 0;

  /* Array<uint32_t> getSelectedCellIndices (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_getSelectedCellIndices)
  NS_IMETHOD GetSelectedCellIndices(nsTArray<uint32_t >& _retval) = 0;

  /* Array<uint32_t> getSelectedColumnIndices (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_getSelectedColumnIndices)
  NS_IMETHOD GetSelectedColumnIndices(nsTArray<uint32_t >& _retval) = 0;

  /* Array<uint32_t> getSelectedRowIndices (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_getSelectedRowIndices)
  NS_IMETHOD GetSelectedRowIndices(nsTArray<uint32_t >& _retval) = 0;

  /* boolean isProbablyForLayout (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_isProbablyForLayout)
  NS_IMETHOD IsProbablyForLayout(bool *_retval) = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIACCESSIBLETABLE \
  NS_IMETHOD GetCaption(nsIAccessible **aCaption) override; \
  NS_IMETHOD GetSummary(nsAString& aSummary) override; \
  NS_IMETHOD GetColumnCount(int32_t *aColumnCount) override; \
  NS_IMETHOD GetRowCount(int32_t *aRowCount) override; \
  NS_IMETHOD GetCellAt(int32_t rowIndex, int32_t columnIndex, nsIAccessible **_retval) override; \
  NS_IMETHOD GetCellIndexAt(int32_t rowIndex, int32_t columnIndex, int32_t *_retval) override; \
  NS_IMETHOD GetColumnIndexAt(int32_t cellIndex, int32_t *_retval) override; \
  NS_IMETHOD GetRowIndexAt(int32_t cellIndex, int32_t *_retval) override; \
  NS_IMETHOD GetRowAndColumnIndicesAt(int32_t cellIndex, int32_t *rowIndex, int32_t *columnIndex) override; \
  NS_IMETHOD GetColumnExtentAt(int32_t row, int32_t column, int32_t *_retval) override; \
  NS_IMETHOD GetRowExtentAt(int32_t row, int32_t column, int32_t *_retval) override; \
  NS_IMETHOD GetColumnDescription(int32_t columnIndex, nsAString& _retval) override; \
  NS_IMETHOD GetRowDescription(int32_t rowIndex, nsAString& _retval) override; \
  NS_IMETHOD IsColumnSelected(int32_t columnIndex, bool *_retval) override; \
  NS_IMETHOD IsRowSelected(int32_t rowIndex, bool *_retval) override; \
  NS_IMETHOD IsCellSelected(int32_t rowIndex, int32_t columnIndex, bool *_retval) override; \
  NS_IMETHOD GetSelectedCellCount(uint32_t *aSelectedCellCount) override; \
  NS_IMETHOD GetSelectedColumnCount(uint32_t *aSelectedColumnCount) override; \
  NS_IMETHOD GetSelectedRowCount(uint32_t *aSelectedRowCount) override; \
  NS_IMETHOD GetSelectedCells(nsIArray **aSelectedCells) override; \
  NS_IMETHOD GetSelectedCellIndices(nsTArray<uint32_t >& _retval) override; \
  NS_IMETHOD GetSelectedColumnIndices(nsTArray<uint32_t >& _retval) override; \
  NS_IMETHOD GetSelectedRowIndices(nsTArray<uint32_t >& _retval) override; \
  NS_IMETHOD IsProbablyForLayout(bool *_retval) 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_NSIACCESSIBLETABLE \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleTable_caption)\
  nsresult GetCaption(nsIAccessible **aCaption); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleTable_summary)\
  nsresult GetSummary(nsAString& aSummary); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleTable_columnCount)\
  nsresult GetColumnCount(int32_t *aColumnCount); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleTable_rowCount)\
  nsresult GetRowCount(int32_t *aRowCount); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_getCellAt)\
  nsresult GetCellAt(int32_t rowIndex, int32_t columnIndex, nsIAccessible **_retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_getCellIndexAt)\
  nsresult GetCellIndexAt(int32_t rowIndex, int32_t columnIndex, int32_t *_retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_getColumnIndexAt)\
  nsresult GetColumnIndexAt(int32_t cellIndex, int32_t *_retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_getRowIndexAt)\
  nsresult GetRowIndexAt(int32_t cellIndex, int32_t *_retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_getRowAndColumnIndicesAt)\
  nsresult GetRowAndColumnIndicesAt(int32_t cellIndex, int32_t *rowIndex, int32_t *columnIndex); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_getColumnExtentAt)\
  nsresult GetColumnExtentAt(int32_t row, int32_t column, int32_t *_retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_getRowExtentAt)\
  nsresult GetRowExtentAt(int32_t row, int32_t column, int32_t *_retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_getColumnDescription)\
  nsresult GetColumnDescription(int32_t columnIndex, nsAString& _retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_getRowDescription)\
  nsresult GetRowDescription(int32_t rowIndex, nsAString& _retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_isColumnSelected)\
  nsresult IsColumnSelected(int32_t columnIndex, bool *_retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_isRowSelected)\
  nsresult IsRowSelected(int32_t rowIndex, bool *_retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_isCellSelected)\
  nsresult IsCellSelected(int32_t rowIndex, int32_t columnIndex, bool *_retval); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleTable_selectedCellCount)\
  nsresult GetSelectedCellCount(uint32_t *aSelectedCellCount); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleTable_selectedColumnCount)\
  nsresult GetSelectedColumnCount(uint32_t *aSelectedColumnCount); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleTable_selectedRowCount)\
  nsresult GetSelectedRowCount(uint32_t *aSelectedRowCount); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleTable_selectedCells)\
  nsresult GetSelectedCells(nsIArray **aSelectedCells); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_getSelectedCellIndices)\
  nsresult GetSelectedCellIndices(nsTArray<uint32_t >& _retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_getSelectedColumnIndices)\
  nsresult GetSelectedColumnIndices(nsTArray<uint32_t >& _retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_getSelectedRowIndices)\
  nsresult GetSelectedRowIndices(nsTArray<uint32_t >& _retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTable_isProbablyForLayout)\
  nsresult IsProbablyForLayout(bool *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIACCESSIBLETABLE(_to) \
  NS_IMETHOD GetCaption(nsIAccessible **aCaption) override { return _to GetCaption(aCaption); } \
  NS_IMETHOD GetSummary(nsAString& aSummary) override { return _to GetSummary(aSummary); } \
  NS_IMETHOD GetColumnCount(int32_t *aColumnCount) override { return _to GetColumnCount(aColumnCount); } \
  NS_IMETHOD GetRowCount(int32_t *aRowCount) override { return _to GetRowCount(aRowCount); } \
  NS_IMETHOD GetCellAt(int32_t rowIndex, int32_t columnIndex, nsIAccessible **_retval) override { return _to GetCellAt(rowIndex, columnIndex, _retval); } \
  NS_IMETHOD GetCellIndexAt(int32_t rowIndex, int32_t columnIndex, int32_t *_retval) override { return _to GetCellIndexAt(rowIndex, columnIndex, _retval); } \
  NS_IMETHOD GetColumnIndexAt(int32_t cellIndex, int32_t *_retval) override { return _to GetColumnIndexAt(cellIndex, _retval); } \
  NS_IMETHOD GetRowIndexAt(int32_t cellIndex, int32_t *_retval) override { return _to GetRowIndexAt(cellIndex, _retval); } \
  NS_IMETHOD GetRowAndColumnIndicesAt(int32_t cellIndex, int32_t *rowIndex, int32_t *columnIndex) override { return _to GetRowAndColumnIndicesAt(cellIndex, rowIndex, columnIndex); } \
  NS_IMETHOD GetColumnExtentAt(int32_t row, int32_t column, int32_t *_retval) override { return _to GetColumnExtentAt(row, column, _retval); } \
  NS_IMETHOD GetRowExtentAt(int32_t row, int32_t column, int32_t *_retval) override { return _to GetRowExtentAt(row, column, _retval); } \
  NS_IMETHOD GetColumnDescription(int32_t columnIndex, nsAString& _retval) override { return _to GetColumnDescription(columnIndex, _retval); } \
  NS_IMETHOD GetRowDescription(int32_t rowIndex, nsAString& _retval) override { return _to GetRowDescription(rowIndex, _retval); } \
  NS_IMETHOD IsColumnSelected(int32_t columnIndex, bool *_retval) override { return _to IsColumnSelected(columnIndex, _retval); } \
  NS_IMETHOD IsRowSelected(int32_t rowIndex, bool *_retval) override { return _to IsRowSelected(rowIndex, _retval); } \
  NS_IMETHOD IsCellSelected(int32_t rowIndex, int32_t columnIndex, bool *_retval) override { return _to IsCellSelected(rowIndex, columnIndex, _retval); } \
  NS_IMETHOD GetSelectedCellCount(uint32_t *aSelectedCellCount) override { return _to GetSelectedCellCount(aSelectedCellCount); } \
  NS_IMETHOD GetSelectedColumnCount(uint32_t *aSelectedColumnCount) override { return _to GetSelectedColumnCount(aSelectedColumnCount); } \
  NS_IMETHOD GetSelectedRowCount(uint32_t *aSelectedRowCount) override { return _to GetSelectedRowCount(aSelectedRowCount); } \
  NS_IMETHOD GetSelectedCells(nsIArray **aSelectedCells) override { return _to GetSelectedCells(aSelectedCells); } \
  NS_IMETHOD GetSelectedCellIndices(nsTArray<uint32_t >& _retval) override { return _to GetSelectedCellIndices(_retval); } \
  NS_IMETHOD GetSelectedColumnIndices(nsTArray<uint32_t >& _retval) override { return _to GetSelectedColumnIndices(_retval); } \
  NS_IMETHOD GetSelectedRowIndices(nsTArray<uint32_t >& _retval) override { return _to GetSelectedRowIndices(_retval); } \
  NS_IMETHOD IsProbablyForLayout(bool *_retval) override { return _to IsProbablyForLayout(_retval); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIACCESSIBLETABLE(_to) \
  NS_IMETHOD GetCaption(nsIAccessible **aCaption) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCaption(aCaption); } \
  NS_IMETHOD GetSummary(nsAString& aSummary) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSummary(aSummary); } \
  NS_IMETHOD GetColumnCount(int32_t *aColumnCount) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetColumnCount(aColumnCount); } \
  NS_IMETHOD GetRowCount(int32_t *aRowCount) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRowCount(aRowCount); } \
  NS_IMETHOD GetCellAt(int32_t rowIndex, int32_t columnIndex, nsIAccessible **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCellAt(rowIndex, columnIndex, _retval); } \
  NS_IMETHOD GetCellIndexAt(int32_t rowIndex, int32_t columnIndex, int32_t *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCellIndexAt(rowIndex, columnIndex, _retval); } \
  NS_IMETHOD GetColumnIndexAt(int32_t cellIndex, int32_t *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetColumnIndexAt(cellIndex, _retval); } \
  NS_IMETHOD GetRowIndexAt(int32_t cellIndex, int32_t *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRowIndexAt(cellIndex, _retval); } \
  NS_IMETHOD GetRowAndColumnIndicesAt(int32_t cellIndex, int32_t *rowIndex, int32_t *columnIndex) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRowAndColumnIndicesAt(cellIndex, rowIndex, columnIndex); } \
  NS_IMETHOD GetColumnExtentAt(int32_t row, int32_t column, int32_t *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetColumnExtentAt(row, column, _retval); } \
  NS_IMETHOD GetRowExtentAt(int32_t row, int32_t column, int32_t *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRowExtentAt(row, column, _retval); } \
  NS_IMETHOD GetColumnDescription(int32_t columnIndex, nsAString& _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetColumnDescription(columnIndex, _retval); } \
  NS_IMETHOD GetRowDescription(int32_t rowIndex, nsAString& _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRowDescription(rowIndex, _retval); } \
  NS_IMETHOD IsColumnSelected(int32_t columnIndex, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->IsColumnSelected(columnIndex, _retval); } \
  NS_IMETHOD IsRowSelected(int32_t rowIndex, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->IsRowSelected(rowIndex, _retval); } \
  NS_IMETHOD IsCellSelected(int32_t rowIndex, int32_t columnIndex, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->IsCellSelected(rowIndex, columnIndex, _retval); } \
  NS_IMETHOD GetSelectedCellCount(uint32_t *aSelectedCellCount) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSelectedCellCount(aSelectedCellCount); } \
  NS_IMETHOD GetSelectedColumnCount(uint32_t *aSelectedColumnCount) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSelectedColumnCount(aSelectedColumnCount); } \
  NS_IMETHOD GetSelectedRowCount(uint32_t *aSelectedRowCount) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSelectedRowCount(aSelectedRowCount); } \
  NS_IMETHOD GetSelectedCells(nsIArray **aSelectedCells) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSelectedCells(aSelectedCells); } \
  NS_IMETHOD GetSelectedCellIndices(nsTArray<uint32_t >& _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSelectedCellIndices(_retval); } \
  NS_IMETHOD GetSelectedColumnIndices(nsTArray<uint32_t >& _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSelectedColumnIndices(_retval); } \
  NS_IMETHOD GetSelectedRowIndices(nsTArray<uint32_t >& _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSelectedRowIndices(_retval); } \
  NS_IMETHOD IsProbablyForLayout(bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->IsProbablyForLayout(_retval); } 


/* starting interface:    nsIAccessibleTableCell */
#define NS_IACCESSIBLETABLECELL_IID_STR "654e296d-fae6-452b-987d-746b20b9514b"

#define NS_IACCESSIBLETABLECELL_IID \
  {0x654e296d, 0xfae6, 0x452b, \
    { 0x98, 0x7d, 0x74, 0x6b, 0x20, 0xb9, 0x51, 0x4b }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsIAccessibleTableCell) nsIAccessibleTableCell : public nsISupports {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_IACCESSIBLETABLECELL_IID)

  /* Used by ToJSValue to check which scriptable interface is implemented. */
  using ScriptableInterfaceType = nsIAccessibleTableCell;

  /* readonly attribute nsIAccessibleTable table; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleTableCell_table)
  NS_IMETHOD GetTable(nsIAccessibleTable **aTable) = 0;

  /* readonly attribute long columnIndex; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleTableCell_columnIndex)
  NS_IMETHOD GetColumnIndex(int32_t *aColumnIndex) = 0;

  /* readonly attribute long rowIndex; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleTableCell_rowIndex)
  NS_IMETHOD GetRowIndex(int32_t *aRowIndex) = 0;

  /* readonly attribute long columnExtent; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleTableCell_columnExtent)
  NS_IMETHOD GetColumnExtent(int32_t *aColumnExtent) = 0;

  /* readonly attribute long rowExtent; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleTableCell_rowExtent)
  NS_IMETHOD GetRowExtent(int32_t *aRowExtent) = 0;

  /* readonly attribute nsIArray columnHeaderCells; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleTableCell_columnHeaderCells)
  NS_IMETHOD GetColumnHeaderCells(nsIArray **aColumnHeaderCells) = 0;

  /* readonly attribute nsIArray rowHeaderCells; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleTableCell_rowHeaderCells)
  NS_IMETHOD GetRowHeaderCells(nsIArray **aRowHeaderCells) = 0;

  /* boolean isSelected (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTableCell_isSelected)
  NS_IMETHOD IsSelected(bool *_retval) = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIACCESSIBLETABLECELL \
  NS_IMETHOD GetTable(nsIAccessibleTable **aTable) override; \
  NS_IMETHOD GetColumnIndex(int32_t *aColumnIndex) override; \
  NS_IMETHOD GetRowIndex(int32_t *aRowIndex) override; \
  NS_IMETHOD GetColumnExtent(int32_t *aColumnExtent) override; \
  NS_IMETHOD GetRowExtent(int32_t *aRowExtent) override; \
  NS_IMETHOD GetColumnHeaderCells(nsIArray **aColumnHeaderCells) override; \
  NS_IMETHOD GetRowHeaderCells(nsIArray **aRowHeaderCells) override; \
  NS_IMETHOD IsSelected(bool *_retval) 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_NSIACCESSIBLETABLECELL \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleTableCell_table)\
  nsresult GetTable(nsIAccessibleTable **aTable); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleTableCell_columnIndex)\
  nsresult GetColumnIndex(int32_t *aColumnIndex); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleTableCell_rowIndex)\
  nsresult GetRowIndex(int32_t *aRowIndex); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleTableCell_columnExtent)\
  nsresult GetColumnExtent(int32_t *aColumnExtent); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleTableCell_rowExtent)\
  nsresult GetRowExtent(int32_t *aRowExtent); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleTableCell_columnHeaderCells)\
  nsresult GetColumnHeaderCells(nsIArray **aColumnHeaderCells); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIAccessibleTableCell_rowHeaderCells)\
  nsresult GetRowHeaderCells(nsIArray **aRowHeaderCells); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIAccessibleTableCell_isSelected)\
  nsresult IsSelected(bool *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIACCESSIBLETABLECELL(_to) \
  NS_IMETHOD GetTable(nsIAccessibleTable **aTable) override { return _to GetTable(aTable); } \
  NS_IMETHOD GetColumnIndex(int32_t *aColumnIndex) override { return _to GetColumnIndex(aColumnIndex); } \
  NS_IMETHOD GetRowIndex(int32_t *aRowIndex) override { return _to GetRowIndex(aRowIndex); } \
  NS_IMETHOD GetColumnExtent(int32_t *aColumnExtent) override { return _to GetColumnExtent(aColumnExtent); } \
  NS_IMETHOD GetRowExtent(int32_t *aRowExtent) override { return _to GetRowExtent(aRowExtent); } \
  NS_IMETHOD GetColumnHeaderCells(nsIArray **aColumnHeaderCells) override { return _to GetColumnHeaderCells(aColumnHeaderCells); } \
  NS_IMETHOD GetRowHeaderCells(nsIArray **aRowHeaderCells) override { return _to GetRowHeaderCells(aRowHeaderCells); } \
  NS_IMETHOD IsSelected(bool *_retval) override { return _to IsSelected(_retval); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIACCESSIBLETABLECELL(_to) \
  NS_IMETHOD GetTable(nsIAccessibleTable **aTable) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTable(aTable); } \
  NS_IMETHOD GetColumnIndex(int32_t *aColumnIndex) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetColumnIndex(aColumnIndex); } \
  NS_IMETHOD GetRowIndex(int32_t *aRowIndex) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRowIndex(aRowIndex); } \
  NS_IMETHOD GetColumnExtent(int32_t *aColumnExtent) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetColumnExtent(aColumnExtent); } \
  NS_IMETHOD GetRowExtent(int32_t *aRowExtent) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRowExtent(aRowExtent); } \
  NS_IMETHOD GetColumnHeaderCells(nsIArray **aColumnHeaderCells) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetColumnHeaderCells(aColumnHeaderCells); } \
  NS_IMETHOD GetRowHeaderCells(nsIArray **aRowHeaderCells) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRowHeaderCells(aRowHeaderCells); } \
  NS_IMETHOD IsSelected(bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->IsSelected(_retval); } 


#endif /* __gen_nsIAccessibleTable_h__ */
