/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM /builds/moz2_slave/mozilla-central-linux-xulrunner/build/accessible/public/nsIAccessibilityService.idl
 */

#ifndef __gen_nsIAccessibilityService_h__
#define __gen_nsIAccessibilityService_h__


#ifndef __gen_nsISupports_h__
#include "nsISupports.h"
#endif

#ifndef __gen_nsIAccessibleRetrieval_h__
#include "nsIAccessibleRetrieval.h"
#endif

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

class nsIFrame; /* forward declaration */

class nsObjectFrame; /* forward declaration */

class nsIContent; /* forward declaration */


/* starting interface:    nsIAccessibilityService */
#define NS_IACCESSIBILITYSERVICE_IID_STR "4df7499d-d96e-48f8-a936-8a22ec0d4915"

#define NS_IACCESSIBILITYSERVICE_IID \
  {0x4df7499d, 0xd96e, 0x48f8, \
    { 0xa9, 0x36, 0x8a, 0x22, 0xec, 0x0d, 0x49, 0x15 }}

class NS_NO_VTABLE nsIAccessibilityService : public nsIAccessibleRetrieval {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IACCESSIBILITYSERVICE_IID)

  /* nsIAccessible createOuterDocAccessible (in nsIDOMNode aNode); */
  NS_IMETHOD CreateOuterDocAccessible(nsIDOMNode *aNode, nsIAccessible **_retval NS_OUTPARAM) = 0;

  /* nsIAccessible createHTML4ButtonAccessible (in nsIFrame aFrame); */
  NS_IMETHOD CreateHTML4ButtonAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) = 0;

  /* nsIAccessible createHyperTextAccessible (in nsIFrame aFrame); */
  NS_IMETHOD CreateHyperTextAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) = 0;

  /* nsIAccessible createHTMLBRAccessible (in nsIFrame aFrame); */
  NS_IMETHOD CreateHTMLBRAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) = 0;

  /* nsIAccessible createHTMLButtonAccessible (in nsIFrame aFrame); */
  NS_IMETHOD CreateHTMLButtonAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) = 0;

  /* nsIAccessible createHTMLLIAccessible (in nsIFrame aFrame, in nsIFrame aBulletFrame, in AString aBulletText); */
  NS_IMETHOD CreateHTMLLIAccessible(nsIFrame *aFrame, nsIFrame *aBulletFrame, const nsAString & aBulletText, nsIAccessible **_retval NS_OUTPARAM) = 0;

  /* nsIAccessible createHTMLCheckboxAccessible (in nsIFrame aFrame); */
  NS_IMETHOD CreateHTMLCheckboxAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) = 0;

  /* nsIAccessible createHTMLComboboxAccessible (in nsIDOMNode aNode, in nsIWeakReference aPresShell); */
  NS_IMETHOD CreateHTMLComboboxAccessible(nsIDOMNode *aNode, nsIWeakReference *aPresShell, nsIAccessible **_retval NS_OUTPARAM) = 0;

  /* nsIAccessible createHTMLGenericAccessible (in nsIFrame aFrame); */
  NS_IMETHOD CreateHTMLGenericAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) = 0;

  /* nsIAccessible createHTMLGroupboxAccessible (in nsIFrame aFrame); */
  NS_IMETHOD CreateHTMLGroupboxAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) = 0;

  /* nsIAccessible createHTMLHRAccessible (in nsIFrame aFrame); */
  NS_IMETHOD CreateHTMLHRAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) = 0;

  /* nsIAccessible createHTMLImageAccessible (in nsIFrame aFrame); */
  NS_IMETHOD CreateHTMLImageAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) = 0;

  /* nsIAccessible createHTMLLabelAccessible (in nsIFrame aFrame); */
  NS_IMETHOD CreateHTMLLabelAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) = 0;

  /* nsIAccessible createHTMLListboxAccessible (in nsIDOMNode aNode, in nsIWeakReference aPresShell); */
  NS_IMETHOD CreateHTMLListboxAccessible(nsIDOMNode *aNode, nsIWeakReference *aPresShell, nsIAccessible **_retval NS_OUTPARAM) = 0;

  /* nsIAccessible createHTMLMediaAccessible (in nsIFrame aFrame); */
  NS_IMETHOD CreateHTMLMediaAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) = 0;

  /* nsIAccessible createHTMLObjectFrameAccessible (in nsObjectFrame aFrame); */
  NS_IMETHOD CreateHTMLObjectFrameAccessible(nsObjectFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) = 0;

  /* nsIAccessible createHTMLRadioButtonAccessible (in nsIFrame aFrame); */
  NS_IMETHOD CreateHTMLRadioButtonAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) = 0;

  /* nsIAccessible createHTMLSelectOptionAccessible (in nsIDOMNode aNode, in nsIAccessible aAccParent, in nsIWeakReference aPresShell); */
  NS_IMETHOD CreateHTMLSelectOptionAccessible(nsIDOMNode *aNode, nsIAccessible *aAccParent, nsIWeakReference *aPresShell, nsIAccessible **_retval NS_OUTPARAM) = 0;

  /* nsIAccessible createHTMLTableAccessible (in nsIFrame aFrame); */
  NS_IMETHOD CreateHTMLTableAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) = 0;

  /* nsIAccessible createHTMLTableCellAccessible (in nsIFrame aFrame); */
  NS_IMETHOD CreateHTMLTableCellAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) = 0;

  /* nsIAccessible createHTMLTextAccessible (in nsIFrame aFrame); */
  NS_IMETHOD CreateHTMLTextAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) = 0;

  /* nsIAccessible createHTMLTextFieldAccessible (in nsIFrame aFrame); */
  NS_IMETHOD CreateHTMLTextFieldAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) = 0;

  /* nsIAccessible createHTMLCaptionAccessible (in nsIFrame aFrame); */
  NS_IMETHOD CreateHTMLCaptionAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) = 0;

  /* nsIAccessible addNativeRootAccessible (in voidPtr aAtkAccessible); */
  NS_IMETHOD AddNativeRootAccessible(void * aAtkAccessible, nsIAccessible **_retval NS_OUTPARAM) = 0;

  /* void removeNativeRootAccessible (in nsIAccessible aRootAccessible); */
  NS_IMETHOD RemoveNativeRootAccessible(nsIAccessible *aRootAccessible) = 0;

  /**
   * Used to describe sort of changes leading to accessible tree invalidation.
   */
  enum { NODE_APPEND = 1U };

  enum { NODE_REMOVE = 2U };

  enum { NODE_SIGNIFICANT_CHANGE = 3U };

  enum { FRAME_SHOW = 4U };

  enum { FRAME_HIDE = 5U };

  enum { FRAME_SIGNIFICANT_CHANGE = 6U };

  /**
   * Invalidate the accessible tree when DOM tree or frame tree is changed.
   *
   * @param aPresShell   [in] the presShell where changes occured
   * @param aContent     [in] the affected DOM content
   * @param aChangeType  [in] the change type (see constants declared above)
   */
  /* void invalidateSubtreeFor (in nsIPresShell aPresShell, in nsIContent aContent, in PRUint32 aChangeType); */
  NS_IMETHOD InvalidateSubtreeFor(nsIPresShell *aPresShell, nsIContent *aContent, PRUint32 aChangeType) = 0;

  /**
   * Notify accessibility that anchor jump has been accomplished to the given
   * target. Used by layout.
   */
  /* void notifyOfAnchorJumpTo (in nsIContent aTarget); */
  NS_IMETHOD NotifyOfAnchorJumpTo(nsIContent *aTarget) = 0;

  /**
   * Fire accessible event of the given type for the given target.
   *
   * @param aEvent   [in] accessible event type
   * @param aTarget  [in] target of accessible event
   */
  /* void fireAccessibleEvent (in unsigned long aEvent, in nsIAccessible aTarget); */
  NS_IMETHOD FireAccessibleEvent(PRUint32 aEvent, nsIAccessible *aTarget) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIAccessibilityService, NS_IACCESSIBILITYSERVICE_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIACCESSIBILITYSERVICE \
  NS_IMETHOD CreateOuterDocAccessible(nsIDOMNode *aNode, nsIAccessible **_retval NS_OUTPARAM); \
  NS_IMETHOD CreateHTML4ButtonAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM); \
  NS_IMETHOD CreateHyperTextAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM); \
  NS_IMETHOD CreateHTMLBRAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM); \
  NS_IMETHOD CreateHTMLButtonAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM); \
  NS_IMETHOD CreateHTMLLIAccessible(nsIFrame *aFrame, nsIFrame *aBulletFrame, const nsAString & aBulletText, nsIAccessible **_retval NS_OUTPARAM); \
  NS_IMETHOD CreateHTMLCheckboxAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM); \
  NS_IMETHOD CreateHTMLComboboxAccessible(nsIDOMNode *aNode, nsIWeakReference *aPresShell, nsIAccessible **_retval NS_OUTPARAM); \
  NS_IMETHOD CreateHTMLGenericAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM); \
  NS_IMETHOD CreateHTMLGroupboxAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM); \
  NS_IMETHOD CreateHTMLHRAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM); \
  NS_IMETHOD CreateHTMLImageAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM); \
  NS_IMETHOD CreateHTMLLabelAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM); \
  NS_IMETHOD CreateHTMLListboxAccessible(nsIDOMNode *aNode, nsIWeakReference *aPresShell, nsIAccessible **_retval NS_OUTPARAM); \
  NS_IMETHOD CreateHTMLMediaAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM); \
  NS_IMETHOD CreateHTMLObjectFrameAccessible(nsObjectFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM); \
  NS_IMETHOD CreateHTMLRadioButtonAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM); \
  NS_IMETHOD CreateHTMLSelectOptionAccessible(nsIDOMNode *aNode, nsIAccessible *aAccParent, nsIWeakReference *aPresShell, nsIAccessible **_retval NS_OUTPARAM); \
  NS_IMETHOD CreateHTMLTableAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM); \
  NS_IMETHOD CreateHTMLTableCellAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM); \
  NS_IMETHOD CreateHTMLTextAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM); \
  NS_IMETHOD CreateHTMLTextFieldAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM); \
  NS_IMETHOD CreateHTMLCaptionAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM); \
  NS_IMETHOD AddNativeRootAccessible(void * aAtkAccessible, nsIAccessible **_retval NS_OUTPARAM); \
  NS_IMETHOD RemoveNativeRootAccessible(nsIAccessible *aRootAccessible); \
  NS_IMETHOD InvalidateSubtreeFor(nsIPresShell *aPresShell, nsIContent *aContent, PRUint32 aChangeType); \
  NS_IMETHOD NotifyOfAnchorJumpTo(nsIContent *aTarget); \
  NS_IMETHOD FireAccessibleEvent(PRUint32 aEvent, nsIAccessible *aTarget); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIACCESSIBILITYSERVICE(_to) \
  NS_IMETHOD CreateOuterDocAccessible(nsIDOMNode *aNode, nsIAccessible **_retval NS_OUTPARAM) { return _to CreateOuterDocAccessible(aNode, _retval); } \
  NS_IMETHOD CreateHTML4ButtonAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return _to CreateHTML4ButtonAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHyperTextAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return _to CreateHyperTextAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLBRAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return _to CreateHTMLBRAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLButtonAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return _to CreateHTMLButtonAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLLIAccessible(nsIFrame *aFrame, nsIFrame *aBulletFrame, const nsAString & aBulletText, nsIAccessible **_retval NS_OUTPARAM) { return _to CreateHTMLLIAccessible(aFrame, aBulletFrame, aBulletText, _retval); } \
  NS_IMETHOD CreateHTMLCheckboxAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return _to CreateHTMLCheckboxAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLComboboxAccessible(nsIDOMNode *aNode, nsIWeakReference *aPresShell, nsIAccessible **_retval NS_OUTPARAM) { return _to CreateHTMLComboboxAccessible(aNode, aPresShell, _retval); } \
  NS_IMETHOD CreateHTMLGenericAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return _to CreateHTMLGenericAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLGroupboxAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return _to CreateHTMLGroupboxAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLHRAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return _to CreateHTMLHRAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLImageAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return _to CreateHTMLImageAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLLabelAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return _to CreateHTMLLabelAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLListboxAccessible(nsIDOMNode *aNode, nsIWeakReference *aPresShell, nsIAccessible **_retval NS_OUTPARAM) { return _to CreateHTMLListboxAccessible(aNode, aPresShell, _retval); } \
  NS_IMETHOD CreateHTMLMediaAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return _to CreateHTMLMediaAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLObjectFrameAccessible(nsObjectFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return _to CreateHTMLObjectFrameAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLRadioButtonAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return _to CreateHTMLRadioButtonAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLSelectOptionAccessible(nsIDOMNode *aNode, nsIAccessible *aAccParent, nsIWeakReference *aPresShell, nsIAccessible **_retval NS_OUTPARAM) { return _to CreateHTMLSelectOptionAccessible(aNode, aAccParent, aPresShell, _retval); } \
  NS_IMETHOD CreateHTMLTableAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return _to CreateHTMLTableAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLTableCellAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return _to CreateHTMLTableCellAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLTextAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return _to CreateHTMLTextAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLTextFieldAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return _to CreateHTMLTextFieldAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLCaptionAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return _to CreateHTMLCaptionAccessible(aFrame, _retval); } \
  NS_IMETHOD AddNativeRootAccessible(void * aAtkAccessible, nsIAccessible **_retval NS_OUTPARAM) { return _to AddNativeRootAccessible(aAtkAccessible, _retval); } \
  NS_IMETHOD RemoveNativeRootAccessible(nsIAccessible *aRootAccessible) { return _to RemoveNativeRootAccessible(aRootAccessible); } \
  NS_IMETHOD InvalidateSubtreeFor(nsIPresShell *aPresShell, nsIContent *aContent, PRUint32 aChangeType) { return _to InvalidateSubtreeFor(aPresShell, aContent, aChangeType); } \
  NS_IMETHOD NotifyOfAnchorJumpTo(nsIContent *aTarget) { return _to NotifyOfAnchorJumpTo(aTarget); } \
  NS_IMETHOD FireAccessibleEvent(PRUint32 aEvent, nsIAccessible *aTarget) { return _to FireAccessibleEvent(aEvent, aTarget); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIACCESSIBILITYSERVICE(_to) \
  NS_IMETHOD CreateOuterDocAccessible(nsIDOMNode *aNode, nsIAccessible **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateOuterDocAccessible(aNode, _retval); } \
  NS_IMETHOD CreateHTML4ButtonAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateHTML4ButtonAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHyperTextAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateHyperTextAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLBRAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateHTMLBRAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLButtonAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateHTMLButtonAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLLIAccessible(nsIFrame *aFrame, nsIFrame *aBulletFrame, const nsAString & aBulletText, nsIAccessible **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateHTMLLIAccessible(aFrame, aBulletFrame, aBulletText, _retval); } \
  NS_IMETHOD CreateHTMLCheckboxAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateHTMLCheckboxAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLComboboxAccessible(nsIDOMNode *aNode, nsIWeakReference *aPresShell, nsIAccessible **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateHTMLComboboxAccessible(aNode, aPresShell, _retval); } \
  NS_IMETHOD CreateHTMLGenericAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateHTMLGenericAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLGroupboxAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateHTMLGroupboxAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLHRAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateHTMLHRAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLImageAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateHTMLImageAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLLabelAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateHTMLLabelAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLListboxAccessible(nsIDOMNode *aNode, nsIWeakReference *aPresShell, nsIAccessible **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateHTMLListboxAccessible(aNode, aPresShell, _retval); } \
  NS_IMETHOD CreateHTMLMediaAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateHTMLMediaAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLObjectFrameAccessible(nsObjectFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateHTMLObjectFrameAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLRadioButtonAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateHTMLRadioButtonAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLSelectOptionAccessible(nsIDOMNode *aNode, nsIAccessible *aAccParent, nsIWeakReference *aPresShell, nsIAccessible **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateHTMLSelectOptionAccessible(aNode, aAccParent, aPresShell, _retval); } \
  NS_IMETHOD CreateHTMLTableAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateHTMLTableAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLTableCellAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateHTMLTableCellAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLTextAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateHTMLTextAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLTextFieldAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateHTMLTextFieldAccessible(aFrame, _retval); } \
  NS_IMETHOD CreateHTMLCaptionAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateHTMLCaptionAccessible(aFrame, _retval); } \
  NS_IMETHOD AddNativeRootAccessible(void * aAtkAccessible, nsIAccessible **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddNativeRootAccessible(aAtkAccessible, _retval); } \
  NS_IMETHOD RemoveNativeRootAccessible(nsIAccessible *aRootAccessible) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveNativeRootAccessible(aRootAccessible); } \
  NS_IMETHOD InvalidateSubtreeFor(nsIPresShell *aPresShell, nsIContent *aContent, PRUint32 aChangeType) { return !_to ? NS_ERROR_NULL_POINTER : _to->InvalidateSubtreeFor(aPresShell, aContent, aChangeType); } \
  NS_IMETHOD NotifyOfAnchorJumpTo(nsIContent *aTarget) { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyOfAnchorJumpTo(aTarget); } \
  NS_IMETHOD FireAccessibleEvent(PRUint32 aEvent, nsIAccessible *aTarget) { return !_to ? NS_ERROR_NULL_POINTER : _to->FireAccessibleEvent(aEvent, aTarget); } 

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

/* Header file */
class nsAccessibilityService : public nsIAccessibilityService
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIACCESSIBILITYSERVICE

  nsAccessibilityService();

private:
  ~nsAccessibilityService();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsAccessibilityService, nsIAccessibilityService)

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

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

/* nsIAccessible createOuterDocAccessible (in nsIDOMNode aNode); */
NS_IMETHODIMP nsAccessibilityService::CreateOuterDocAccessible(nsIDOMNode *aNode, nsIAccessible **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAccessible createHTML4ButtonAccessible (in nsIFrame aFrame); */
NS_IMETHODIMP nsAccessibilityService::CreateHTML4ButtonAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAccessible createHyperTextAccessible (in nsIFrame aFrame); */
NS_IMETHODIMP nsAccessibilityService::CreateHyperTextAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAccessible createHTMLBRAccessible (in nsIFrame aFrame); */
NS_IMETHODIMP nsAccessibilityService::CreateHTMLBRAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAccessible createHTMLButtonAccessible (in nsIFrame aFrame); */
NS_IMETHODIMP nsAccessibilityService::CreateHTMLButtonAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAccessible createHTMLLIAccessible (in nsIFrame aFrame, in nsIFrame aBulletFrame, in AString aBulletText); */
NS_IMETHODIMP nsAccessibilityService::CreateHTMLLIAccessible(nsIFrame *aFrame, nsIFrame *aBulletFrame, const nsAString & aBulletText, nsIAccessible **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAccessible createHTMLCheckboxAccessible (in nsIFrame aFrame); */
NS_IMETHODIMP nsAccessibilityService::CreateHTMLCheckboxAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAccessible createHTMLComboboxAccessible (in nsIDOMNode aNode, in nsIWeakReference aPresShell); */
NS_IMETHODIMP nsAccessibilityService::CreateHTMLComboboxAccessible(nsIDOMNode *aNode, nsIWeakReference *aPresShell, nsIAccessible **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAccessible createHTMLGenericAccessible (in nsIFrame aFrame); */
NS_IMETHODIMP nsAccessibilityService::CreateHTMLGenericAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAccessible createHTMLGroupboxAccessible (in nsIFrame aFrame); */
NS_IMETHODIMP nsAccessibilityService::CreateHTMLGroupboxAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAccessible createHTMLHRAccessible (in nsIFrame aFrame); */
NS_IMETHODIMP nsAccessibilityService::CreateHTMLHRAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAccessible createHTMLImageAccessible (in nsIFrame aFrame); */
NS_IMETHODIMP nsAccessibilityService::CreateHTMLImageAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAccessible createHTMLLabelAccessible (in nsIFrame aFrame); */
NS_IMETHODIMP nsAccessibilityService::CreateHTMLLabelAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAccessible createHTMLListboxAccessible (in nsIDOMNode aNode, in nsIWeakReference aPresShell); */
NS_IMETHODIMP nsAccessibilityService::CreateHTMLListboxAccessible(nsIDOMNode *aNode, nsIWeakReference *aPresShell, nsIAccessible **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAccessible createHTMLMediaAccessible (in nsIFrame aFrame); */
NS_IMETHODIMP nsAccessibilityService::CreateHTMLMediaAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAccessible createHTMLObjectFrameAccessible (in nsObjectFrame aFrame); */
NS_IMETHODIMP nsAccessibilityService::CreateHTMLObjectFrameAccessible(nsObjectFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAccessible createHTMLRadioButtonAccessible (in nsIFrame aFrame); */
NS_IMETHODIMP nsAccessibilityService::CreateHTMLRadioButtonAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAccessible createHTMLSelectOptionAccessible (in nsIDOMNode aNode, in nsIAccessible aAccParent, in nsIWeakReference aPresShell); */
NS_IMETHODIMP nsAccessibilityService::CreateHTMLSelectOptionAccessible(nsIDOMNode *aNode, nsIAccessible *aAccParent, nsIWeakReference *aPresShell, nsIAccessible **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAccessible createHTMLTableAccessible (in nsIFrame aFrame); */
NS_IMETHODIMP nsAccessibilityService::CreateHTMLTableAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAccessible createHTMLTableCellAccessible (in nsIFrame aFrame); */
NS_IMETHODIMP nsAccessibilityService::CreateHTMLTableCellAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAccessible createHTMLTextAccessible (in nsIFrame aFrame); */
NS_IMETHODIMP nsAccessibilityService::CreateHTMLTextAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAccessible createHTMLTextFieldAccessible (in nsIFrame aFrame); */
NS_IMETHODIMP nsAccessibilityService::CreateHTMLTextFieldAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAccessible createHTMLCaptionAccessible (in nsIFrame aFrame); */
NS_IMETHODIMP nsAccessibilityService::CreateHTMLCaptionAccessible(nsIFrame *aFrame, nsIAccessible **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAccessible addNativeRootAccessible (in voidPtr aAtkAccessible); */
NS_IMETHODIMP nsAccessibilityService::AddNativeRootAccessible(void * aAtkAccessible, nsIAccessible **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeNativeRootAccessible (in nsIAccessible aRootAccessible); */
NS_IMETHODIMP nsAccessibilityService::RemoveNativeRootAccessible(nsIAccessible *aRootAccessible)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void invalidateSubtreeFor (in nsIPresShell aPresShell, in nsIContent aContent, in PRUint32 aChangeType); */
NS_IMETHODIMP nsAccessibilityService::InvalidateSubtreeFor(nsIPresShell *aPresShell, nsIContent *aContent, PRUint32 aChangeType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void notifyOfAnchorJumpTo (in nsIContent aTarget); */
NS_IMETHODIMP nsAccessibilityService::NotifyOfAnchorJumpTo(nsIContent *aTarget)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void fireAccessibleEvent (in unsigned long aEvent, in nsIAccessible aTarget); */
NS_IMETHODIMP nsAccessibilityService::FireAccessibleEvent(PRUint32 aEvent, nsIAccessible *aTarget)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

// for component registration
// {DE401C37-9A7F-4278-A6F8-3DE2833989EF}
#define NS_ACCESSIBILITY_SERVICE_CID \
{ 0xde401c37, 0x9a7f, 0x4278, { 0xa6, 0xf8, 0x3d, 0xe2, 0x83, 0x39, 0x89, 0xef } }
extern nsresult
NS_GetAccessibilityService(nsIAccessibilityService** aResult);

#endif /* __gen_nsIAccessibilityService_h__ */
